把图片变成数据

有时程序需要加载本地图片,然后打包的时候就很不方便,所以 wxPython 支持 img2png.py、img2py.py、img2xpm.py 等工具来支持这种操作,但是我调用的时候一直出错,在网上查了很多方式最后找到了解决方案:

1
2
3
4
5
6
# imageToBite.py
import base64
with open('dna049.png', 'rb') as f:
bData = base64.b64encode(f.read())
pData = bData.decode()
print(pData)

这段代码就是把图片变成数据 bite。 相应的修改图片就可以换着用了,如果很多就批处理自己照样写。

然后在命令行执行

py imageToBite.py > a.txt

就可以把数据存下来,然后复制到下面程序的 data 中就行了。

然后在 wxPython 框架下

1
2
from wx.lib.embeddedimage import PyEmbeddedImage
bitmap = PyEmbeddedImage(data).GetBitmap()

就可以咯