diff options
Diffstat (limited to 'Imaging/Scripts/pilconvert.py')
-rw-r--r-- | Imaging/Scripts/pilconvert.py | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/Imaging/Scripts/pilconvert.py b/Imaging/Scripts/pilconvert.py new file mode 100644 index 0000000..176f2a6 --- /dev/null +++ b/Imaging/Scripts/pilconvert.py @@ -0,0 +1,96 @@ +#! /usr/local/bin/python +# +# The Python Imaging Library. +# $Id: pilconvert.py 2134 2004-10-06 08:55:20Z fredrik $ +# +# convert image files +# +# History: +# 0.1 96-04-20 fl Created +# 0.2 96-10-04 fl Use draft mode when converting images +# 0.3 96-12-30 fl Optimize output (PNG, JPEG) +# 0.4 97-01-18 fl Made optimize an option (PNG, JPEG) +# 0.5 98-12-30 fl Fixed -f option (from Anthony Baxter) +# + +import site +import getopt, string, sys + +from PIL import Image + +def usage(): + print "PIL Convert 0.5/1998-12-30 -- convert image files" + print "Usage: pilconvert [option] infile outfile" + print + print "Options:" + print + print " -c <format> convert to format (default is given by extension)" + print + print " -g convert to greyscale" + print " -p convert to palette image (using standard palette)" + print " -r convert to rgb" + print + print " -o optimize output (trade speed for size)" + print " -q <value> set compression quality (0-100, JPEG only)" + print + print " -f list supported file formats" + sys.exit(1) + +if len(sys.argv) == 1: + usage() + +try: + opt, argv = getopt.getopt(sys.argv[1:], "c:dfgopq:r") +except getopt.error, v: + print v + sys.exit(1) + +format = None +convert = None + +options = { } + +for o, a in opt: + + if o == "-f": + Image.init() + id = Image.ID[:] + id.sort() + print "Supported formats (* indicates output format):" + for i in id: + if Image.SAVE.has_key(i): + print i+"*", + else: + print i, + sys.exit(1) + + elif o == "-c": + format = a + + if o == "-g": + convert = "L" + elif o == "-p": + convert = "P" + elif o == "-r": + convert = "RGB" + + elif o == "-o": + options["optimize"] = 1 + elif o == "-q": + options["quality"] = string.atoi(a) + +if len(argv) != 2: + usage() + +try: + im = Image.open(argv[0]) + if convert and im.mode != convert: + im.draft(convert, im.size) + im = im.convert(convert) + if format: + apply(im.save, (argv[1], format), options) + else: + apply(im.save, (argv[1],), options) +except: + print "cannot convert image", + print "(%s:%s)" % (sys.exc_type, sys.exc_value) |