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

Re: [pygame] Blitting to alpha channel or using another image's alpha channel



hi,

I think you can do this with Surface.set_masks() and surface.set_shifts.

Get the r,g,b,a masks, and shifts, then change them so that only the a
part is valid any more.

Then, I think you could blit the A from one surface to another.



cheers,



On Fri, Dec 19, 2008 at 1:54 PM, Weeble <clockworksaint@xxxxxxxxx> wrote:
> Can somebody suggest how to do this? I want to render parts of an
> image based on a dynamically generated mask. Right now I'm doing this
> by drawing the mask in black and white on another surface, then
> iterating over every pixel and changing the alpha value of the source
> image to match the red value of the corresponding pixel in the mask
> surface, then finally blitting this onto the target surface. This
> seems a bit convoluted and I get the feeling there's probably a more
> efficient way to do it. Is there a way either to 1. blit an 8-bit
> greyscale image directly into the alpha channel of an image, or 2.
> directly blit image A onto image B using image C as the alpha channel?
>