如何使用python枕头创建圆形缩略图并在背景图像上重叠

时间:2017-03-24 04:58:37

标签: python pillow

avatar.jpg

back.jpg

如何合成两个图像如下?

I Effect:

1 个答案:

答案 0 :(得分:9)

以下是使用图片的示例。尺寸在示例中是硬编码的,但您可以通过计算轻松替换它们。 avatar.jpg和background.jpg是您的帖子中保存的图片。

以下是此示例的github repo链接: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

此代码的裁剪部分是从answer借用的。

希望它有所帮助!