summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/wx-3.0-msw/wx/lib/embeddedimage.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/wx-3.0-msw/wx/lib/embeddedimage.py')
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/lib/embeddedimage.py75
1 files changed, 75 insertions, 0 deletions
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/lib/embeddedimage.py b/lib/python2.7/site-packages/wx-3.0-msw/wx/lib/embeddedimage.py
new file mode 100644
index 0000000..06b968a
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/lib/embeddedimage.py
@@ -0,0 +1,75 @@
+#----------------------------------------------------------------------
+# Name: wx.lib.embeddedimage
+# Purpose: Defines a class used for embedding PNG images in Python
+# code. The primary method of using this module is via
+# the code generator in wx.tools.img2py.
+#
+# Author: Anthony Tuininga
+#
+# Created: 26-Nov-2007
+# RCS-ID: $Id$
+# Copyright: (c) 2007 by Anthony Tuininga
+# Licence: wxWindows license
+#----------------------------------------------------------------------
+
+import base64
+import cStringIO
+import wx
+
+try:
+ b64decode = base64.b64decode
+except AttributeError:
+ b64decode = base64.decodestring
+
+
+class PyEmbeddedImage(object):
+ """
+ PyEmbeddedImage is primarily intended to be used by code generated
+ by img2py as a means of embedding image data in a python module so
+ the image can be used at runtime without needing to access the
+ image from an image file. This makes distributing icons and such
+ that an application uses simpler since tools like py2exe will
+ automatically bundle modules that are imported, and the
+ application doesn't have to worry about how to locate the image
+ files on the user's filesystem.
+
+ The class can also be used for image data that may be acquired
+ from some other source at runtime, such as over the network or
+ from a database. In this case pass False for isBase64 (unless the
+ data actually is base64 encoded.) Any image type that
+ wx.ImageFromStream can handle should be okay.
+ """
+
+ def __init__(self, data, isBase64=True):
+ self.data = data
+ self.isBase64 = isBase64
+
+ def GetBitmap(self):
+ return wx.BitmapFromImage(self.GetImage())
+
+ def GetData(self):
+ data = self.data
+ if self.isBase64:
+ data = b64decode(self.data)
+ return data
+
+ def GetIcon(self):
+ icon = wx.EmptyIcon()
+ icon.CopyFromBitmap(self.GetBitmap())
+ return icon
+
+ def GetImage(self):
+ stream = cStringIO.StringIO(self.GetData())
+ return wx.ImageFromStream(stream)
+
+ # added for backwards compatibility
+ getBitmap = GetBitmap
+ getData = GetData
+ getIcon = GetIcon
+ getImage = GetImage
+
+ # define properties, for convenience
+ Bitmap = property(GetBitmap)
+ Icon = property(GetIcon)
+ Image = property(GetImage)
+