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

Mengapa PNG Lutsinar Kelihatan Hitam Apabila Diletakkan dalam Pygame?

Linda Hamilton
Linda Hamiltonasal
2024-10-30 20:15:18487semak imbas

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))

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!

Kenyataan:
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