python打包项目exe可执行文件(带图片)

如果项目中没有图片的话很好打包,但是如果存在图片的话就不好弄了,因为图片的是没有办法被直接打包起来的,这里用的是把图片转成base64然后在使用的时候在转成图片,直接实操。

直接上代码

将图片转化成.py文件

import base64
def transform(picture_name):
    #将图片转换问base64码
    open_pic = open("%s" % picture_name, 'rb')
    b64str = base64.b64encode(open_pic.read())
    open_pic.close()
    # 注意这边b64str一定要加上.decode()
    write_data = 'img = "%s"' % b64str.decode()
    f = open('%s.py' % picture_name.replace('.', '_'), 'w+')
    f.write(write_data)
    f.close()
if __name__ == '__main__':
    pics = ["view/imgs/main.jpg",
            "view/imgs/enroll.gif",
            "view/imgs/IMG_8278.PNG",
            "view/imgs/index.gif",
            "view/imgs/money.gif",
            "view/imgs/change.jpg",  
            "view/imgs/Exit.jpg"]  # 这是7张图片
    for i in pics:
        transform(i)
    print("ok")

运行上面的代码就会在同目录下生成对应的.py文件
在这里插入图片描述
生成的文件格式
在这里插入图片描述

base64转图片

def base64_to_image(base64_string):
    image_data = base64.b64decode(base64_string)
    image = Image.open(BytesIO(image_data))
    return image

定义一个方法,在需要使用图片的地方将base64码传进来就可以了
这样之后在打包就可以正常运行了

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值