Tôi đang cố gắng để blit một hình ảnh PNG lên một bề mặt, nhưng phần trong suốt của hình ảnh chuyển sang màu đen đối với một số lý do, đây là mã đơn giản:Làm cách nào để trích xuất PNG có độ trong suốt lên bề mặt trong 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")
world.blit(treeImage, (0,0), (0,0,64,64))
screen.blit(world, pygame.rect.Rect(0,0, 800, 600))
gì làm tôi phải làm gì để giải quyết vấn đề ? Hình ảnh có độ trong suốt alpha, tôi đã mở nó trong PhotoShop và nền chuyển sang màu trong suốt, không phải màu đen hoặc trắng hoặc bất kỳ màu nào khác.
Cảm ơn bạn đã hỗ trợ của bạn :)
pygame.image.load sẽ có alpha khi được tải từ hình ảnh có alpha. –
@PeterShinners thực sự, gọi 'convert()' hoặc 'convert_alpha()' vẫn được ưu tiên vì không làm như vậy nghĩa là tất cả các blits đều sẽ yêu cầu chuyển đổi định dạng pixel, cực kỳ chậm. – congusbongus