【问题标题】:How to create a circular thumbnail using python pillow and overlap on background image如何使用 python 枕头创建圆形缩略图并在背景图像上重叠
【发布时间】:2017-08-16 22:22:24
【问题描述】:

头像.jpg

返回.jpg

如下如何合成两张图片?

我的效果:

【问题讨论】:

  • 请详细说明你想要什么效果
  • 把正方形图片变成圆形图片

标签: python pillow


【解决方案1】:

这是一个使用您的图片的示例。尺寸在示例中是硬编码的,但您可以轻松地用计算替换它们。 avatar.jpg 和 background.jpg 是您帖子中按原样保存的图像。

这里是此示例的 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')

输出.png:

重叠.png:

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

希望对你有帮助!

【讨论】:

  • 非常感谢~这是我想要的效果。
  • ImageOps.fit 是多余的
  • 也许加一些cmets来解释代码在做什么?
猜你喜欢
  • 1970-01-01
  • 2016-06-13
  • 2023-02-22
  • 2021-08-05
  • 2014-11-21
  • 2019-11-29
  • 2023-04-08
  • 1970-01-01
  • 2022-01-19
相关资源
最近更新 更多