Sebastian Sebastian - 4 months ago 43
Python Question

How do you composite an image onto another image with PIL in Python?

I need to take an image and place it onto a new, generated white background in order for it to be converted into a downloadable desktop wallpaper. So the process would go:

  1. Generate new, all white image with 1440x900 dimensions

  2. Place existing image on top, centered

  3. Save as single image

In PIL, I see the
object, but nothing indicates it can draw existing image data onto another image. Suggestions or links anyone can recommend?


This can be accomplished with an Image instance's paste method:

from PIL import Image
img ='/pathto/file', 'r')
img_w, img_h = img.size
background ='RGBA', (1440, 900), (255, 255, 255, 255))
bg_w, bg_h = background.size
offset = ((bg_w - img_w) / 2, (bg_h - img_h) / 2)
background.paste(img, offset)'out.png')

This and many other PIL tricks can be picked up at Nadia Alramli's PIL Tutorial