""" Common routines for the image converter utilities. """ import sys, os, glob, getopt, string from wxPython.wx import * wxInitAllImageHandlers() def convert(file, maskClr, outputDir, outputName, outType, outExt): if string.lower(os.path.splitext(file)[1]) == ".ico": icon = wxIcon(file, wxBITMAP_TYPE_ICO) img = wxBitmapFromIcon(icon) else: img = wxBitmap(file, wxBITMAP_TYPE_ANY) if not img.Ok(): return 0, file + " failed to load!" else: if maskClr: om = img.GetMask() mask = wxMaskColour(img, maskClr) img.SetMask(mask) if om is not None: om.Destroy() if outputName: newname = outputName else: newname = os.path.join(outputDir, os.path.basename(os.path.splitext(file)[0]) + outExt) if img.SaveFile(newname, outType): return 1, file + " converted to " + newname else: img = wxImageFromBitmap(img) if img.SaveFile(newname, outType): return 1, "ok" else: return 0, file + " failed to save!" def main(args, outType, outExt, doc): if not args or ("-h" in args): print doc return outputDir = "" maskClr = None outputName = None try: opts, fileArgs = getopt.getopt(args, "m:n:o:") except getopt.GetoptError: print __doc__ return for opt, val in opts: if opt == "-m": maskClr = val elif opt == "-n": outputName = val elif opt == "-o": outputDir = val if not fileArgs: print doc return for arg in fileArgs: for file in glob.glob(arg): if not os.path.isfile(file): continue ok, msg = convert(file, maskClr, outputDir, outputName, outType, outExt) print msg