X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7fa0effc0e635f44fb7ab773b4c689e5bab9a212..3f4f90c2a0c1f274d1918b320132ed0ca2922fe5:/wxPython/tools/img2py.py diff --git a/wxPython/tools/img2py.py b/wxPython/tools/img2py.py index 863de24d42..21957dc8bc 100644 --- a/wxPython/tools/img2py.py +++ b/wxPython/tools/img2py.py @@ -1,6 +1,6 @@ #!/usr/bin/env python """ -img2py.py -- Convert an image to XPM format and embed it in a Python +img2py.py -- Convert an image to PNG format and embed it in a Python module with appropriate code so it can be loaded into a program at runtime. The benefit is that since it is Python source code it can be delivered as a .pyc or @@ -36,33 +36,17 @@ Options: import sys, os, glob, getopt, tempfile, string import cPickle, cStringIO, zlib -import img2xpm +import img2img +from wxPython import wx def crunch_data(data, compressed): - # convert the lines to a Python list, pickle it and optionally compress the result. - lines = [] - for line in data: - if line[0] == "\"": - # the line is typically (but not always): - # [quote] [quote][comma][newline] - - # chop one char from the front - line = line[1:] - - # now find the final quote and truncate there - quote = string.rfind(line, "\"") - - # and append the remaining data to our list - lines.append(line[:quote]) - - - # pickle, crunch and convert it to a form suitable for embedding in code - data = cPickle.dumps(lines) + # compress it? if compressed: data = zlib.compress(data, 9) - data = repr(data) + # convert to a printable format, so it can be in a Python source file + data = repr(data) # This next bit is borrowed from PIL. It is used to wrap the text intelligently. fp = cStringIO.StringIO() @@ -141,12 +125,12 @@ def main(args): # convert the image file to a temporary file tfname = tempfile.mktemp() - ok, msg = img2xpm.convert(image_file, maskClr, None, tfname) + ok, msg = img2img.convert(image_file, maskClr, None, tfname, wx.wxBITMAP_TYPE_PNG, ".png") if not ok: print msg return - data = open(tfname, "r").readlines() + data = open(tfname, "rb").read() data = crunch_data(data, compressed) os.unlink(tfname) @@ -158,32 +142,35 @@ def main(args): out.write("#" + "-" * 70 + "\n") if not append: out.write("# This file was generated by %s\n#\n" % sys.argv[0]) - out.write("from wxPython.wx import wxBitmapFromXPMData, wxImageFromBitmap\n") + out.write("from wxPython.wx import wxImageFromStream, wxBitmapFromImage\n") if icon: - out.write("from wxPython.wx import wxIconFromXPMData\n") + out.write("from wxPython.wx import wxEmptyIcon\n") if compressed: - out.write("import cPickle, zlib\n\n\n") + out.write("import cStringIO, zlib\n\n\n") else: - out.write("import cPickle\n\n\n") + out.write("import cStringIO\n\n\n") if compressed: out.write("def get%sData():\n" - " return cPickle.loads(zlib.decompress(\n%s))\n\n" + " return zlib.decompress(\n%s)\n\n" % (imgName, data)) else: out.write("def get%sData():\n" - " return cPickle.loads(\n%s)\n\n" + " return %s\n\n" % (imgName, data)) out.write("def get%sBitmap():\n" - " return wxBitmapFromXPMData(get%sData())\n\n" + " return wxBitmapFromImage(get%sImage())\n\n" "def get%sImage():\n" - " return wxImageFromBitmap(get%sBitmap())\n\n" + " stream = cStringIO.StringIO(get%sData())\n" + " return wxImageFromStream(stream)\n\n" % tuple([imgName] * 4)) if icon: out.write("def get%sIcon():\n" - " return wxIconFromXPMData(get%sData())\n\n" + " icon = wxEmptyIcon()\n" + " icon.CopyFromBitmap(get%sBitmap())\n" + " return icon\n\n" % tuple([imgName] * 2)) @@ -201,7 +188,3 @@ def main(args): if __name__ == "__main__": main(sys.argv[1:]) - - - -