/Scripts/pilfile.py
Python | 93 lines | 66 code | 8 blank | 19 comment | 23 complexity | dde4095998a6c1dd7bc462ca454fc7b5 MD5 | raw file
- #! /usr/local/bin/python
- #
- # The Python Imaging Library.
- # $Id: pilfile.py 2813 2006-10-07 10:11:35Z fredrik $
- #
- # 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 getopt, glob, sys
- 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 as 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, end=' ')
- 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, end=' ')
- if verbose:
- print(im.info, im.tile, end=' ')
- print()
- if verify:
- try:
- im.verify()
- except:
- if not quiet:
- print("failed to verify image", end=' ')
- print("(%s:%s)" % (sys.exc_info()[0], sys.exc_info()[1]))
- except IOError as 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)