Python PIL调整大小是否保持宽高比?

时间:2010-02-09 21:43:27

标签: python resize python-imaging-library

PIL是否会调整到我给它的确切尺寸,无论如何?或者如果我给它类似Image.ANTIALIAS参数的话,它会尝试保持宽高比吗?

5 个答案:

答案 0 :(得分:22)

是的,它会使用缩略图方法保持宽高比:

image = Image.open(source_path)
image.thumbnail(size, Image.ANTIALIAS)
image.save(dest_path, "JPEG")

答案 1 :(得分:10)

How do I resize an image using PIL and maintain its aspect ratio?

来自PIL的Image.resize将完全按照说明完成。没有幕后宽高比的东西。

答案 2 :(得分:2)

是。这里需要的是thumbnail()方法......关于这个主题的这个或其他帖子中没有提到的一件事是'size'必须是列表或元组。因此,要调整大小为500像素的最大尺寸,您可以调用:     image.thumbnail((500,500),Image.ANTIALIAS)

另见这篇文章的主题: How do I resize an image using PIL and maintain its aspect ratio?

答案 3 :(得分:0)

不,不是。但是您可以执行以下操作:

im = PIL.Image.open("email.jpg"))
width, height = im.size
im = im.resize((width//2, height//2))

高度和宽度除以相同的数字,保持相同的纵横比。

答案 4 :(得分:0)

好的,所以这需要几行代码才能得到你想要的。

首先找到比例,然后确定所需图像的尺寸(高度或宽度)。就我而言,我希望高度为 100 像素,然后相应地调整宽度,最后使用该比例找到新的高度或新的宽度。

所以首先找到尺寸:

width, height = logo_img.size
ratio = width / height
      

然后,修复其中一个维度:

new_height = 100

然后找到该高度的新宽度:

new_width = int(ratio * new_height)
            
logo_img = logo_img.resize((new_width, new_height))