【发布时间】:2020-01-17 14:27:51
【问题描述】:
我需要 pygame 中的一些图像的明亮版本。但是,我不想为每一个都制作一个明亮的版本。我可以通过pygame改变这个吗?
我在这里 (How can you edit the brightness of images in PyGame?) 发现了一个类似的问题,但我不知道如何将图像的颜色相乘。有人能解释一下我该怎么做吗?
【问题讨论】:
标签: python python-3.x pygame
我需要 pygame 中的一些图像的明亮版本。但是,我不想为每一个都制作一个明亮的版本。我可以通过pygame改变这个吗?
我在这里 (How can you edit the brightness of images in PyGame?) 发现了一个类似的问题,但我不知道如何将图像的颜色相乘。有人能解释一下我该怎么做吗?
【问题讨论】:
标签: python python-3.x pygame
如果您想使图像变亮,那么我建议为表面添加恒定颜色。这可以通过.fill() 来实现,通过使用特殊参数BLEND_RGB_ADD。如果填充颜色为黑色 (0, 0, 0),则图像根本不会改变。如果填充颜色为白色(255、255、255),则整个图像将变为白色。例如:
image = pygame.image.load(my_imagename)
brighten = 128
image.fill((brighten, brighten, brighten), special_flags=pygame.BLEND_RGB_ADD)
[...] 我希望图像更透明。
如果你想增加图像的透明度,那么你可以通过使用特殊标志BLEND_RGBA_MULT 将图像与透明颜色“混合”。当然你要确保图片格式提供了一个alpha通道(例如.convert_alpha())
image = pygame.image.load(my_imagename).convert_alpha()
transparency = 128
image.fill((255, 255, 255, transparency), special_flags=pygame.BLEND_RGBA_MULT)
【讨论】: