gpt4 book ai didi

python - Pygame跨平台颜色不一致

转载 作者:太空宇宙 更新时间:2023-11-03 11:00:16 25 4
gpt4 key购买 nike

我正在尝试使用 get_atset_at 通过查找非透明像素并将它们更改为所需颜色来更改 GIF 图像的颜色。

在 OSX 机器上它工作正常,透明颜色被读取为 (0, 0, 0, 0) 并且被重新着色为我选择的任何颜色。但是当我在 Windows 7 机器上运行时,透明像素被读取为 (255, 255, 255, 0),导致整个图像被着色。

我使用的代码如下:

player_border_w, player_border_h = thisGame.ready_border.get_size()
for y in range(player_border_h): # run for each image pixel
for x in range(player_border_w):
if thisGame.ready_border.get_at((x, y)) != TRANSPARENT: # (0, 0, 0, 0)
thisGame.ready_border.set_at((x, y), thisGame.ghost_colors[idx - 1]) # replace with desired color

任何人都可能知道是什么导致了这种情况以及任何解决方案?

谢谢!

最佳答案

颜色符号 RGBA 应该给你一个线索——(红、蓝、绿、Alpha)。因此,alpha channel 表示不透明度 - 如果将其设置为 0,则其他颜色设置为什么都没有关系。

所以你应该使用类似的方法

def is_transparent(colour):
red, green, blue, alpha = colour
if alpha == 0:
return True
return False

或者,更简洁地说:

def is_transparent(colour):
return colour[3] == 0

至于为什么这在 OSX 和 Windows 上不同,我猜测要么是底层图像读取库完全不同,要么是两个操作系统之间用于该库的编译器存在差异导致差异。

关于python - Pygame跨平台颜色不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34268536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com