Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I change the brightness of an image in pygame?

I need a bright version of some of my images in pygame. However, I don't want to make a bright version of every single one. Can I change this through pygame?

I've found a similar queation here (How can you edit the brightness of images in PyGame?), but I don't know how to multiply the color of an image. Can someone explain how I can do that?

like image 861
R. B. Avatar asked Sep 16 '19 17:09

R. B.


Video Answer


1 Answers

If you want to brighten an image, then I recommend to add a constant color to the surface. This can be achieved by .fill(), wby the use of the special parameter BLEND_RGB_ADD. If the fill color is black (0, 0, 0) then the image won't change at all. If the fill color is white (255, 255, 255), then the entire image will become white. e.g.:

image = pygame.image.load(my_imagename)
brighten = 128
image.fill((brighten, brighten, brighten), special_flags=pygame.BLEND_RGB_ADD) 

[...] I want the image to be more transparent.

If you want to increase the transparency of the image, then yo can "blend" the image with a transparent color, by the use of the special flag BLEND_RGBA_MULT . Of course you've to ensure that the image format provides an alpha channel (e.g. .convert_alpha())

image = pygame.image.load(my_imagename).convert_alpha()
transparency = 128
image.fill((255, 255, 255, transparency), special_flags=pygame.BLEND_RGBA_MULT) 
like image 63
Rabbid76 Avatar answered Sep 29 '22 18:09

Rabbid76