Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa PNG Lutsinar Kelihatan Hitam Apabila Diletakkan dalam Pygame?

Mengapa PNG Lutsinar Kelihatan Hitam Apabila Diletakkan dalam Pygame?

Linda Hamilton
Lepaskan: 2024-10-30 20:15:18
asal
574 orang telah melayarinya

Why Do Transparent PNGs Appear Black When Blitted in Pygame?

Menyelesaikan Isu Ketelusan Apabila Menghancurkan PNG dalam Pygame

Apabila bekerja dengan imej dalam Pygame, adalah penting untuk memastikan ketelusan dikendalikan dengan betul untuk mengelakkan artifak visual yang tidak dijangka. Satu isu biasa ialah bahagian lutsinar imej PNG yang kelihatan hitam apabila dipancarkan ke permukaan. Masalah ini timbul kerana tiada tetapan ketelusan dalam sifat imej.

Untuk mengatasinya, Pygame mencadangkan menggunakan kaedah convert_alpha() selepas memuatkan imej PNG. Proses ini mengubah suai tetapan ketelusan imej, membenarkan ketelusan per piksel dan memastikan bahagian telus dipaparkan seperti yang dimaksudkan. Di bawah ialah versi semakan kod anda yang menggabungkan pembetulan ini:

import pygame

screen = pygame.display.set_mode((800, 600), pygame.DOUBLEBUF, 32)
world = pygame.Surface((800, 600), pygame.SRCALPHA, 32)
treeImage = pygame.image.load("tree.png");
treeImage = treeImage.convert_alpha() # Added this line
world.blit(treeImage, (0,0), (0,0,64,64))
screen.blit(world, pygame.rect.Rect(0,0, 800, 600))
Salin selepas log masuk

Dengan membuat pengubahsuaian ini, anda kini seharusnya melihat bahagian lutsinar imej PNG yang dipaparkan dengan betul apabila dipancarkan ke permukaan. Ini akan menghapuskan isu kawasan lutsinar kelihatan hitam dan memastikan imej anda mengekalkan ketelusan yang dimaksudkan.

Atas ialah kandungan terperinci Mengapa PNG Lutsinar Kelihatan Hitam Apabila Diletakkan dalam Pygame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan