我希望能够显示具有指定透明度的带有alpha通道的图像,但是无法弄清楚如何实现。
为了说明我在这方面的困难,以下内容是从此SO答案中略微修改的代码片段,但是如果您运行它,您会发现“image”失去了其本来的alpha通道,而“image2”的alpha通道永远不会改变!糟糕。
所以...怎么做?
为了说明我在这方面的困难,以下内容是从此SO答案中略微修改的代码片段,但是如果您运行它,您会发现“image”失去了其本来的alpha通道,而“image2”的alpha通道永远不会改变!糟糕。
#!/usr/bin/env python
import pygame, sys
pygame.init()
window = pygame.display.set_mode((200, 200))
background = pygame.Surface((window.get_size()))
background.fill((255, 255, 255))
image = image2 = pygame.image.load('alpha.png')
image = image.convert()
rect = image.get_rect()
image2 = image2.convert_alpha()
rect2 = image2.get_rect()
rect2.left = rect.width + 1
i = 0
while True:
for event in pygame.event.get():
if event.type == 12:
pygame.quit()
sys.exit()
image.set_alpha(i)
image2.set_alpha(i)
window.fill((255, 255, 255))
window.blit(background, background.get_rect())
window.blit(image, rect)
window.blit(image2, rect2)
if i == 255:
i = 0
else:
i += 1
pygame.display.update()
pygame.time.Clock().tick(60)
所以...怎么做?
image = image2 = pygame.image.load('alpha.png')
可能会引用相同的实例,从而擦除图像 2 的透明度。 - ninMonkey