因使用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文件,将该文件加载到需要使用图片的程序中即可文章源自网吧系统维护-https://www.58pxe.com/10765.html
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')
文章源自网吧系统维护-https://www.58pxe.com/10765.html 文章源自网吧系统维护-https://www.58pxe.com/10765.html
版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!


评论