/Scripts/pilfile.py
Python | 94 lines | 67 code | 8 blank | 19 comment | 23 complexity | 0527a4ff978b3c81ba0224de60328fb2 MD5 | raw file
- #!c:\python27\python.exe
- #
- # The Python Imaging Library.
- # $Id$
- #
- # a utility to identify image files
- #
- # this script identifies image files, extracting size and
- # pixel mode information for known file formats. Note that
- # you don't need the PIL C extension to use this module.
- #
- # History:
- # 0.0 1995-09-01 fl Created
- # 0.1 1996-05-18 fl Modified options, added debugging mode
- # 0.2 1996-12-29 fl Added verify mode
- # 0.3 1999-06-05 fl Don't mess up on class exceptions (1.5.2 and later)
- # 0.4 2003-09-30 fl Expand wildcards on Windows; robustness tweaks
- #
-
- import site
- import getopt, glob, sys
-
- from PIL import Image
-
- if len(sys.argv) == 1:
- print "PIL File 0.4/2003-09-30 -- identify image files"
- print "Usage: pilfile [option] files..."
- print "Options:"
- print " -f list supported file formats"
- print " -i show associated info and tile data"
- print " -v verify file headers"
- print " -q quiet, don't warn for unidentified/missing/broken files"
- sys.exit(1)
-
- try:
- opt, args = getopt.getopt(sys.argv[1:], "fqivD")
- except getopt.error, v:
- print v
- sys.exit(1)
-
- verbose = quiet = verify = 0
-
- for o, a in opt:
- if o == "-f":
- Image.init()
- id = Image.ID[:]
- id.sort()
- print "Supported formats:"
- for i in id:
- print i,
- sys.exit(1)
- elif o == "-i":
- verbose = 1
- elif o == "-q":
- quiet = 1
- elif o == "-v":
- verify = 1
- elif o == "-D":
- Image.DEBUG = Image.DEBUG + 1
-
- def globfix(files):
- # expand wildcards where necessary
- if sys.platform == "win32":
- out = []
- for file in files:
- if glob.has_magic(file):
- out.extend(glob.glob(file))
- else:
- out.append(file)
- return out
- return files
-
- for file in globfix(args):
- try:
- im = Image.open(file)
- print "%s:" % file, im.format, "%dx%d" % im.size, im.mode,
- if verbose:
- print im.info, im.tile,
- print
- if verify:
- try:
- im.verify()
- except:
- if not quiet:
- print "failed to verify image",
- print "(%s:%s)" % (sys.exc_type, sys.exc_value)
- except IOError, v:
- if not quiet:
- print file, "failed:", v
- except:
- import traceback
- if not quiet:
- print file, "failed:", "unexpected error"
- traceback.print_exc(file=sys.stdout)