如何使用 python 枕头创建圆形缩略图并重叠在背景图像上
How to create a circular thumbnail using python pillow and overlap on background image
avatar.jpg
back.jpg
如何合成两张图片如下?
我影响:
这是一个使用您的图片的示例。维度在示例中是硬编码的,但您可以轻松地用计算替换它们。 avatar.jpg 和 background.jpg 是您 post 中保存的图像。
这是此示例的 link 到 github 存储库: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:
overlap.png:
此代码的裁剪部分是从 answer.
中借用的
希望对您有所帮助!
avatar.jpg
back.jpg
如何合成两张图片如下?
我影响:
这是一个使用您的图片的示例。维度在示例中是硬编码的,但您可以轻松地用计算替换它们。 avatar.jpg 和 background.jpg 是您 post 中保存的图像。
这是此示例的 link 到 github 存储库: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:
overlap.png:
此代码的裁剪部分是从 answer.
中借用的希望对您有所帮助!