mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2024-12-27 13:42:28 -06:00
76 lines
2.4 KiB
Python
76 lines
2.4 KiB
Python
#----------------------------------------------------------------------
|
|
# 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
|
|
# Copyright: (c) 2007 by Anthony Tuininga
|
|
# Licence: wxWindows license
|
|
# Tags: phoenix-port
|
|
#----------------------------------------------------------------------
|
|
|
|
import base64
|
|
|
|
import wx
|
|
from wx.lib.six import BytesIO
|
|
|
|
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.Image can handle should be okay.
|
|
"""
|
|
|
|
def __init__(self, data, isBase64=True):
|
|
self.data = data
|
|
self.isBase64 = isBase64
|
|
|
|
def GetBitmap(self):
|
|
return wx.Bitmap(self.GetImage())
|
|
|
|
def GetData(self):
|
|
data = self.data
|
|
if self.isBase64:
|
|
data = b64decode(self.data)
|
|
return data
|
|
|
|
def GetIcon(self):
|
|
icon = wx.Icon()
|
|
icon.CopyFromBitmap(self.GetBitmap())
|
|
return icon
|
|
|
|
def GetImage(self):
|
|
stream = BytesIO(self.GetData())
|
|
return wx.Image(stream)
|
|
|
|
# added for backwards compatibility
|
|
getBitmap = wx.deprecated(GetBitmap)
|
|
getData = wx.deprecated(GetData)
|
|
getIcon = wx.deprecated(GetIcon)
|
|
getImage = wx.deprecated(GetImage)
|
|
|
|
# define properties, for convenience
|
|
Bitmap = property(GetBitmap)
|
|
Data = property(GetData)
|
|
Icon = property(GetIcon)
|
|
Image = property(GetImage)
|