How to create a circular thumbnail using python pillow and overlay on background image

avatar.jpg

back.jpg

How to synthesize two images as follows?

I Effect:

+3


source to share


1 answer


Here's an example using your images. In this example, the dimensions are hardcoded, but you can easily replace them with calculations. avatar.jpg and background.jpg are the images in your post, saved as they are.

Here's a link to the github repo for this example: python_pillow_circular_thumbnail

from PIL import Image, ImageOps, ImageDraw

im = Image.open('avatar.jpg')
im = im.resize((120, 120));
bigsize = (im.size[0] * 3, im.size[1] * 3)
mask = Image.new('L', bigsize, 0)
draw = ImageDraw.Draw(mask) 
draw.ellipse((0, 0) + bigsize, fill=255)
mask = mask.resize(im.size, Image.ANTIALIAS)
im.putalpha(mask)

output = ImageOps.fit(im, mask.size, centering=(0.5, 0.5))
output.putalpha(mask)
output.save('output.png')

background = Image.open('back.jpg')
background.paste(im, (150, 10), im)
background.save('overlap.png')

      

output.png: enter image description here



overlap.png: enter image description here

Some of the crop of this code is borrowed from this.

Hope it helps!

+6


source







All Articles