在PIL中具有至少一定大小的图像缩略图

时间:2017-01-18 13:20:39

标签: python image python-imaging-library

我尝试调整图像大小以保持其宽高比,使其最小尺寸为500px

使用this答案中的代码可以正常工作,但会根据最大尺寸调整图片大小。

因此,如果我们有一个2000x1000图片并设置size= 500,500,则生成的图片将为500x250,而我希望1000x500。我该怎么办?

显然这些都是随机数。

1 个答案:

答案 0 :(得分:1)

使用max代替min。观察不同的结果:

>>> maxwidth = 500
>>> maxheight = 500
>>> width = 2000
>>> height = 1000
>>> i = min(maxwidth/width, maxheight/height)
>>> a = max(maxwidth/width, maxheight/height)
>>> width*i, height*i
(500.0, 250.0)
>>> width*a, height*a
(1000.0, 500.0)

您可以使用这些值来确定要发送到img.thumbnail的尺寸:

x,y = 500, 500
# compute i and a above
m.thumbnail((x*a/i, y*a/i), Image.ANTIALIAS)