]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/tools/img2img.py
Changed the img2py tool to use PNG instead of XPM for embedding image
[wxWidgets.git] / wxPython / tools / img2img.py
diff --git a/wxPython/tools/img2img.py b/wxPython/tools/img2img.py
new file mode 100644 (file)
index 0000000..dbefc26
--- /dev/null
@@ -0,0 +1,76 @@
+"""
+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
+