保存具有透明背景的图像

saving an image with a transparent background

我的程序有一些问题:

minimap = pygame.Surface((100, 100))
background = pygame.Surface((minimap.get_width(), minimap.get_height()))
background.fill((0, 0, 0))
background.set_alpha(0)
minimap.blit(background, (0, 0, minimap.get_width(), minimap.get_height()))
pygame.image.save(minimap, "minimap.png")

问题是,我希望背景是透明的,因为我稍后将它显示在其他东西上,我想看到它后面,所以我使用了另一个表面,我已经设置了颜色并将alpha为0,之后背景设置为minimap。

如果你有任何线索请告诉我

background 没有每像素 alpha 格式。设置 SRCALPHA 标志以创建具有包含每像素 alpha 的图像格式的表面。不要用不透明的黑色填充背景:

background = pygame.Surface((minimap.get_width(), minimap.get_height()))
background.fill((0, 0, 0))
background.set_alpha(0)

background = pygame.Surface(minimap.get_size(), pygame.SRCALPHA)

或者您可以使用 set_colorkey()

设置透明色键
background = pygame.Surface((minimap.get_width(), minimap.get_height()))
background.set_colorkey((0, 0, 0))