好吧,一个更直接的获取图像尺寸的方法是使用python图像库(这也是Django在后端使用get_image_尺寸的方法)。
所以,你使用它就像:
>> import Image
>> img = Image.open("foo.png")
>> img.size
(1729,828)
最简单的解决方案是:
img_dimensions = lambda f: Image.open(f).size
filenames = filter(lambda f: is_image_file(f) and img_dimensions(f)==my_dimensions, os.listdir(fullpath))
我的尺寸在哪里——你的尺寸。
问题是,这(以及任何其他检查文件尺寸的方法)实际上每次都必须打开和读取图像,这是不明智的重复操作。因此,根据应用程序的负载,您可能希望将img_dimensions()放入一个实际的、独立的函数中,并将其内存化。(
http://code.activestate.com/recipes/52201-memoizing-cacheing-function-return-values/
)或者,如果这是一项常见的任务,只需将图像放入按维度预先排序的文件夹中即可。