使用PIL制作缩略图的增强方法
我知道在PIL这个库里有一个缩略图的方法。不过我想做的事情有点不同,就是如何调整原始图片的大小。假设我有一张300x360像素的竖版图片。我想把它调整到一个150x100像素的横版框里。所以我需要先找到原始图片最短的一边,把它调整到这个尺寸,然后再从最长的一边裁剪掉多余的部分,裁剪的部分要从中间开始。这样该怎么做呢?
1 个回答
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)
可能有更快的方法来做到这一点,但这个方法应该是可行的。