我知道PIL中有一个缩略图方法。我想要做的是它如何调整原始图像的大小。假设我有一个300x360px的垂直图像。我想将其调整为一个150x100px水平图像的约束框。因此,我需要找到原始图像的最小边,调整大小,然后从最大边将其余部分裁剪到中心。 我该怎么办?
答案 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)
可能有更快的方法来做到这一点,但这应该有效。