我正在尝试调整图像的大小,保持其纵横比,使其最小尺寸为500px
。
使用这个答案中的代码可以工作,但它是基于最大尺寸来调整图像大小的。
因此,如果我们有一个2000x1000
的图像,并设置size= 500,500
,结果图像将为500x250
,而我希望得到的是1000x500
。我该怎么做?
显然,这些是随机数字。
我正在尝试调整图像的大小,保持其纵横比,使其最小尺寸为500px
。
使用这个答案中的代码可以工作,但它是基于最大尺寸来调整图像大小的。
因此,如果我们有一个2000x1000
的图像,并设置size= 500,500
,结果图像将为500x250
,而我希望得到的是1000x500
。我该怎么做?
显然,这些是随机数字。
使用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)