PIL:Thumbnail and end up with a square image该如何设置?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (68)
image = Image.open(data)
image.thumbnail((36,36), Image.NEAREST)

将保持高宽比。但我需要像这样显示图像:

<img src="/media/image.png" style="height:36px; width:36px" />

我可以要一种带透明或白色图案的信箱样式吗?

提问于
用户回答回答于

将图像粘贴到以适当大小为背景的透明图像中。

from PIL import Image
size = (36, 36)
image = Image.open(data)
image.thumbnail(size, Image.ANTIALIAS)
background = Image.new('RGBA', size, (255, 255, 255, 0))
background.paste(
    image, (int((size[0] - image.size[0]) / 2), int((size[1] - image.size[1]) / 2))
)
background.save("output.png")
用户回答回答于

PIL已经有了一个功能来完成以下工作:

from PIL import Image, ImageOps
thumb = ImageOps.fit(image, size, Image.ANTIALIAS)

扫码关注云+社区

领取腾讯云代金券