检索有关图像的基本信息

时间:2013-08-08 18:56:14

标签: python image

我正在寻找一个可以从图像中提取(元)数据的Python库。我特别感兴趣的是获得图像的尺寸。 anybode能推荐一个好的图书馆吗?

使用案例:我正在尝试批量删除小于特定大小(1280x800像素)的单个文件夹中的图像(我使用os.remove)。

4 个答案:

答案 0 :(得分:1)

这里的一般结构。谷歌搜索帮助。

from PIL import Image
import os
for _image in os.listdir("image\folder"):
    img = Image.open(_image)
    height, width = img.size
    if height < .... or width < .....:
        os.remove(os.path.join("image\folder",_image)

答案 1 :(得分:0)

答案 2 :(得分:0)

这是一个很可能用于此类事情的简短示例,您必须安装PIL (http://www.pythonware.com/products/pil/)..

from PIL import Image
import glob
import os

# Get images that end in .jpg
for image_file in glob.glob('*.jpg'):
  img = Image.open(image_file)
  # get the image's width and height in pixels
  width, height = img.size
  if width < 1280 and height < 800:
      os.unlink(image_file)

注意:如果PIL不支持您拥有的图像类型,您可以查看Imagemagick(它有一个python API) - unix file命令也会为您提供某些图像文件的信息。

答案 3 :(得分:0)

我认为它会是这样的:

import os
from PIL import Image #need to install python-imaging

path = "." #current dir
files = [ i for i in os.listdir(path) if os.path.isfile(os.path.join(path,i)) ]
print "Files found in the current dir:"+ ",".join(files)
for f in files:
        try:
            im=Image.open(f)
            i,j = im.size
            print "Image " + f + " size("+str(i)+","+str(j)+")"
                if i < 1280 and j < 800:
                    print "Deleting "+f
                    os.remove(f)
        except IOError:
            print "The file " +f + " isn't an image"