我尝试调整图像大小以保持其宽高比,使其最小尺寸为500px
。
使用this答案中的代码可以正常工作,但会根据最大尺寸调整图片大小。
因此,如果我们有一个2000x1000
图片并设置size= 500,500
,则生成的图片将为500x250
,而我希望1000x500
。我该怎么办?
显然这些都是随机数。
答案 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)