从图像列表中查找最大的图像尺寸

时间:2010-08-20 09:11:29

标签: python

我有一个本地保存的图像列表(路径)。如何从这些中找到最大的图像?我不是指文件大小,而是指尺寸。

所有图片均采用常见的网络兼容格式 - JPG,GIF,PNG等

谢谢。

4 个答案:

答案 0 :(得分:7)

假设图像的“大小”是其区域:

from PIL import Image

def get_img_size(path):
    width, height = Image.open(path).size
    return width*height

largest = max(the_paths, key=get_img_size)

答案 1 :(得分:5)

使用Python Imaging Library(PIL)。像这样:

from PIL import Image
filenames = ['/home/you/Desktop/chstamp.jpg', '/home/you/Desktop/something.jpg']
sizes = [Image.open(f, 'r').size for f in filenames]
max(sizes)

更新(谢谢delnan):

将以上代码段的最后两行替换为:

max(Image.open(f, 'r').size for f in filenames)

更新2

OP想要找到与最大尺寸对应的文件的索引。这需要numpy的一些帮助。见下文:

from numpy import array
image_array = array([Image.open(f, 'r').size for f in filenames])
print image_array.argmax()

答案 2 :(得分:0)

你需要PIL。

from PIL import Image

img = Image.open(image_file)
width, height = img.size

获得单个图像的大小后,检查整个列表并选择较大的列表不是问题。

答案 3 :(得分:-1)

import Image

src = Image.open(image)
size = src.size 

尺寸将是图像尺寸(宽度和高度)的元组