What you describe is not cropping, but rather the setting of an alpha mask. 
Here is the simple case for if all your images are the same size as your 
template, and only the template has transparancy information:

# Get the Alpha band from the template

tmplt = Image.open('template.png')
A = tmplt.split()[3]

# Get the R, G, B bands from the image to apply the alpha to

im = Image.open('myimage.png')
[R, G, B] = im.split()

# Combine the RGB from the image with the A from the template

newimg = Image.merge('RGBA', (R, G, B, A))

# Write the result back to disk under another name

newimg.save('myimage_rgba.png')


To get from the simple case to more general uses:
- If your images are not all the same size, you need to think about how you 
want to scale the template to match.
- If your other images do have some other transparency of their own, combine 
the A band from the image with the A band from the template before you merge 
everything back together.

Hope this helps, kind regards,
   Nils

________________________________________
I'm trying to take a group of pictures and give them rounded edges. I have a 
source image (a rectangle with rounded edges, transparent PNG) and I'd like to 
use this as a template. All the target images would become transparent wherever 
this source image is transparent.

In other words, I'd be making the same region of the target image transparent 
as is transparent in the source image.

Any tips for accomplishing this?


_______________________________________________
Image-SIG maillist  -  Image-SIG@python.org
http://mail.python.org/mailman/listinfo/image-sig

Reply via email to