【问题标题】:How can I change the brightness of an image in pygame?如何在pygame中更改图像的亮度?
【发布时间】:2020-01-17 14:27:51
【问题描述】:

我需要 pygame 中的一些图像的明亮版本。但是,我不想为每一个都制作一个明亮的版本。我可以通过pygame改变这个吗?

我在这里 (How can you edit the brightness of images in PyGame?) 发现了一个类似的问题,但我不知道如何将图像的颜色相乘。有人能解释一下我该怎么做吗?

【问题讨论】:

    标签: python python-3.x pygame


    【解决方案1】:

    如果您想使图像变亮,那么我建议为表面添加恒定颜色。这可以通过.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) 
    

    【讨论】:

    • 这确实使图像变亮,但我提出的问题是错误的。我希望图像更透明。你知道我该怎么做吗?
    • @R.B.请参阅答案的第二部分。
    • 正是我需要的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    相关资源
    最近更新 更多