因使用pyinstaller打包exe时,不能打包图片,解决方法:
采用base64动态生成图片
import base64 def pic2py(picture_names, py_name): write_data = [] for picture_name in picture_names: filename = picture_name.replace('.', '_') with open("%s" % picture_name, 'rb') as r: b64str = base64.b64encode(r.read()) # 注意这边 b64str 一定要加上.decode() write_data.append('%s = "%s"\n' % (filename, b64str.decode())) with open(f'{py_name}.py', 'w+') as w: for data in write_data: w.write(data) # 需要转码的图片: pics = ["favicon.ico"] # 将pics里面的图片写到 image.py 中 pic2py(pics, 'image') print("转码完成...")
2.转码后会生成image.py文件,将该文件加载到需要使用图片的程序中即可
import os # 导入图片转码后所在的py文件 from image import * # 创建临时图片 with open(r'D:/favicon.ico', 'wb') as w: # 创建临时的文件 # 把这个one图片解码出来,写入文件中去 w.write(base64.b64decode(favicon_ico)) # 运行上面程序后,会在open的路径处生成这张图片,所以需要用到这张图片时直接用图片的绝对路径即可 # 图片用后即删 os.remove('D:/favicon.ico')
版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!
评论