text: #!c:\users\irwin\envs\myproject\scripts\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
  #
  
  from __future__ import print_function
  
  import getopt
  import glob
  import logging
  import 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 as v:
      print(v)
      sys.exit(1)
  
  verbose = quiet = verify = 0
  logging_level = "WARNING"
  
  for o, a in opt:
      if o == "-f":
          Image.init()
          id = sorted(Image.ID)
          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":
          logging_level = "DEBUG"
  
  logging.basicConfig(level=logging_level)
  
  
  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)
  