python打包图片到EXE方法

admin Python评论671字数 749阅读模式

因使用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')

 

版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!
广告也精彩
admin
  • 本文由 发表于 2023年7月18日 21:22:32
  • 转载请务必保留本文链接:https://www.58pxe.com/10765.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: