Think.ing
Think.ing

Reputation: 101

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

avatar.jpg

back.jpg

How to synthesize two images as follows?

I Effect:

Upvotes: 9

Views: 5825

Answers (1)

Shaunak
Shaunak

Reputation: 18018

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!

Upvotes: 21

Related Questions