在 Pygame 中處理影像時,確保正確處理透明度以避免意外的視覺偽影至關重要。一個常見問題是 PNG 影像的透明部分在傳輸到表面上時顯示為黑色。出現此問題的原因是圖像屬性中缺少透明度設定。
為了解決此問題,Pygame 建議在載入 PNG 圖片後使用 Convert_alpha() 方法。此過程會修改影像的透明度設置,允許每個像素透明並確保透明部分按預期渲染。以下是包含此修復的程式碼的修訂版本:
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))
透過進行此修改,您現在應該可以在傳輸到表面時正確看到 PNG 影像的透明部分渲染。這將消除透明區域顯示為黑色的問題,並確保您的影像保留其預期的透明度。
以上是為什麼透明 PNG 在 Pygame 中 Blitted 時顯示為黑色?的詳細內容。更多資訊請關注PHP中文網其他相關文章!