首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PIL:缩略图,并以正方形图像结束

PIL:缩略图,并以正方形图像结束
EN

Stack Overflow用户
提问于 2009-09-06 18:33:59
回答 7查看 34.6K关注 0票数 57

呼叫

代码语言:javascript
复制
image = Image.open(data)
image.thumbnail((36,36), Image.NEAREST)

将保持纵横比。但我最终需要像这样显示图像:

代码语言:javascript
复制
<img src="/media/image.png" style="height:36px; width:36px" />

我可以使用透明或白色的信箱样式吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-09-06 18:45:01

将图像粘贴到具有合适大小的透明图像中作为背景

代码语言:javascript
复制
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")

编辑:修复语法错误

票数 82
EN

Stack Overflow用户

发布于 2011-12-12 12:25:07

PIL已经有一个函数可以做到这一点:

代码语言:javascript
复制
from PIL import Image, ImageOps
thumb = ImageOps.fit(image, size, Image.ANTIALIAS)
票数 168
EN

Stack Overflow用户

发布于 2016-07-28 16:30:28

代码语言:javascript
复制
from PIL import Image

import StringIO

def thumbnail_image():
    image = Image.open("image.png")
    image.thumbnail((300, 200))
    thumb_buffer = StringIO.StringIO()
    image.save(thumb_buffer, format=image.format)
    fp = open("thumbnail.png", "w")
    fp.write(thumb_buffer.getvalue())
    fp.close()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1386352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档