使用PIL制作缩略图,增强方式

时间:2011-11-16 11:57:35

标签: python python-imaging-library

我知道PIL中有一个缩略图方法。我想要做的是它如何调整原始图像的大小。假设我有一个300x360px的垂直图像。我想将其调整为一个150x100px水平图像的约束框。因此,我需要找到原始图像的最小边,调整大小,然后从最大边将其余部分裁剪到中心。 我该怎么办?

enter image description here

1 个答案:

答案 0 :(得分:3)

from PIL import Image

width = 150
height = 100
infile = Image.open(in_filename)
im = infile.copy()

if im.size[0] >= im.size[1]:
    im = im.resize((height * im.size[0]/im.size[1], height))
    im = im.crop(((im.size[0] - width)/2, 0, (im.size[0] + width)/2, height))
else:
    im = im.resize((width, width * im.size[1]/im.size[0]))
    im = im.crop((0, (im.size[1] - height)/2, width, (im.size[1] + height)/2))

im.save(out_filename)

可能有更快的方法来做到这一点,但这应该有效。