是否可以将图像编码为python脚本?

时间:2010-09-15 06:40:40

标签: python

可以直接将图像编码到程序中,而不是使用目录来引用图像吗?

4 个答案:

答案 0 :(得分:8)

您可以使用base64模块将数据嵌入到程序中。来自base64 documentation

>>> import base64
>>> encoded = base64.b64encode('data to be encoded')
>>> encoded
'ZGF0YSB0byBiZSBlbmNvZGVk' 
>>> data = base64.b64decode(encoded)
>>> data
'data to be encoded'

使用此功能,您可以对图像进行base64编码,并将结果字符串嵌入到程序中。要获取原始图像数据,您可以将该字符串传递给base64.b64decode

答案 1 :(得分:5)

尝试img2py脚本。它包含在wxpython的一部分(谷歌,看看你是否可以单独)。

  

img2py.py - 将图像转换为PNG格式并将其嵌入Python中   具有适当代码的模块,因此可以在运行时加载到程序中。好处是因为它是Python源代码,它可以使用freeze,py2exe等以.pyc或'编译'的形式提供给程序。   用法:

     

img2py.py [options] image_file python_file

答案 2 :(得分:1)

不需要对字符串进行base64编码,只需将其repr粘贴到代码中

答案 3 :(得分:0)

如果您的意思是,将代表图像的字节存储在程序代码本身中,您可以通过base64编码图像文件并将变量设置为该字符串来完成。

您还可以声明一个字节数组,其中数组的内容是表示图像的字节。

在这两种情况下,如果要对图像进行操作,可能需要解码源代码中包含的值。

警告:您可能正在这里踩着表演雷区。

更好的方法可能是将图像存储在模块的目录结构中,并根据需要加载(甚至缓存它)。您可以编写一个通用的方法/函数,根据某些标识符加载正确的图像,该标识符映射到作为模块的一部分的特定图像文件名。