PIL中生成至少特定尺寸的图像缩略图

3

我正在尝试调整图像的大小,保持其纵横比,使其最小尺寸为500px

使用这个答案中的代码可以工作,但它是基于最大尺寸来调整图像大小的。

因此,如果我们有一个2000x1000的图像,并设置size= 500,500,结果图像将为500x250,而我希望得到的是1000x500。我该怎么做?

显然,这些是随机数字。

1个回答

4

使用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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接