mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-14 05:36:48 +03:00
95 lines
2.4 KiB
Python
95 lines
2.4 KiB
Python
|
#! /usr/local/bin/python
|
||
|
#
|
||
|
# 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)
|