Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

python

pillow

avatar.jpg

back.jpg

How to synthesize two images as follows?

I Effect:

like image 598
Think.ing Avatar asked Mar 24 '17 04:03

Think.ing


1 Answers

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

Here's a link to 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

Crop part of this code is borrowed form this answer.

Hope it helps!

like image 73
Shaunak Avatar answered Nov 15 '22 22:11

Shaunak