From: Eric S. Raymond Date: Thu, 5 Aug 2004 22:24:45 +0000 (+0000) Subject: After PIL change. X-Git-Tag: 2.7~6 X-Git-Url: http://thyrsus.com/gitweb/?a=commitdiff_plain;h=851baf6803719cf8c2e10d6d62590e3fd7f88df4;p=imgsizer.git After PIL change. --- diff --git a/imgsizer b/imgsizer index 50336fd..3aa2274 100755 --- a/imgsizer +++ b/imgsizer @@ -66,6 +66,11 @@ # Verify and merge Lucien Saviot's patch to produce XHTML from XHTML input. # Also his change to handle spurious lin e breaks produced by Dave Raggett's # tidy(1) utility. +# +# Modified by Andrew Gwozdziewycz , 17 June 2004 +# +# Added support for the Python Imaging Library to determine size in case of +# failure from file(1), rdjpgcom(1) and identify(1). import sys, os, getopt, string, re, urllib, commands @@ -77,10 +82,10 @@ try: except ImportError: import cmp -version = "2.5, 14 November 2003"; +version = "2.7, 05 Aug 2004"; splash = """imgsizer version %s, Eric S. Raymond -See for updates.""" +See for updates.""" usage = """Usage: imgsizer [OPTIONS] [HTML File] @@ -155,7 +160,7 @@ rdjpg_match = re.compile (r" ([0-9]+)w *\* *([0-9]+)h") def imgsize(src): "Return the image size in pixels for a given image source." - global magick, rdjpgcom + global magick, rdjpgcom, pythonimage try: (filename, headers) = urllib.urlretrieve(src) except IOError: @@ -187,6 +192,18 @@ def imgsize(src): elif status == 127: sys.stderr.write("imgsizer: giving up on ImageMagick\n") magick = 0 + # if that fails, try at _LAST_ resort Python Imaging Library + # open doesn't actually load all the data, so it shouldn't be too expensive + if pythonimage: + try: + import Image + pyimg = Image.open(filename) + return pyimg.size + except (ImportError, IOError): + sys.stderr.write("imgsizer: giving up on Python Imaging Library\n") + pythonimage = 0 + pass + # All attempts failed sys.stderr.write("imgsizer: couldn't analyze %s\n" % src) @@ -233,8 +250,9 @@ dir = "." # NOTE: if you are doing