1

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

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

PS SSCE 将是pvz_shooter_test.py和/或image_test.py链接的 GitHub 存储库。

4

2 回答 2

1

试试 mySurface.convert_alpha() (查看pygame 文档)。

于 2012-07-17T10:24:07.880 回答
0

即使在我用 GIMP 清除了 PyGame 之后,还有一些关于 PyGame 如何仍然读取蓝色背景的更多详细信息。

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

于 2013-11-02T08:40:14.387 回答