我有一个本地保存的图像列表(路径)。如何从这些中找到最大的图像?我不是指文件大小,而是指尺寸。
所有图片均采用常见的网络兼容格式 - JPG,GIF,PNG等
谢谢。
答案 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
尺寸将是图像尺寸(宽度和高度)的元组