[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Howto blit a mask



On Fri, 2006-06-02 at 23:56 -0400, Chuang Wu wrote:
> when I click on the image, I wanna add a light yellow mask on it, so
> we can still see the image, with a half-transparent cover. And if I
> re-click, the mask is removed.
> 
> Could I just use blit() to do this? 

You'll want to use two images and switch between them. There's a few
ways to generate the yellow version of the image. The most generic would
be to blit a slightly transparent yellow image on top of yours.

def YellowImage(originalSurface):
    yellowSurface = originalSurface.copy()
    yellow = pygame.Surface(yellowSurface.size())
    yellow.fill(pygame.Color("yellow"))
    yellow.set_alpha(128)
    yellowSurface.blit(yellow, (0, 0)
    return yellowSurface

You could also use Surfarray to change the color values of the pixels.
This will give you a better look, but will also require a dependency
Numeric.