PNG Image Sprites保留背景颜色

时间:2012-07-17 09:32:16

标签: python png pygame

我正在使用this sprite进行一些实验。我用GIMP裁剪了工作表的一部分,使蓝色背景透明,结果为this。但是,当我使用这个精灵运行代码时,我仍然得到一个蓝色背景的精灵。其他精灵(不同的精灵表,相同的来源,相同的编辑过程)也会发生同样的事情。

现在,我知道我可以使用PyGame本身设置透明色,但我想知道这是否是我能做到的唯一方法?我不能通过图像本身来做到这一点吗?为什么即使在我用GIMP清除后,PyGame仍然会读取蓝色backgorund?

P.S。 SSCE将与GitHub回购链接pvz_shooter_test.py和/或image_test.py

2 个答案:

答案 0 :(得分:1)

尝试mySurface.convert_alpha()(查看pygame documentation有关它的信息)。

答案 1 :(得分:0)

关于PyGame如何在GIMP清除之后仍然读取蓝色背景的更多详细信息。

当图像文件格式支持时,像素不仅仅表示为RGB位。每个像素都有其他信息, alpha 频道。 GIMP所做的是将alpha位设置为0%不透明度。 RGB值保持不变(在本例中为蓝色)。由于我的PyGame代码未设置为读取额外的alpha位,因此它只读取描述蓝色的RGB。 convert_alpha方法告诉PyGame也读取alpha通道。