【Python GUI】使用pyinstaller打包成exe时可以显示图片的方法

 我在学习Python到GUI的使用时,尝试在一个组件上使用了背景图片,然而,直接Run时这个背景图片是可以显示出来,可当使用pyinstaller打包成exe时却没有打包进去显示出来,在网上搜索多个方法测试后终于找到一个成功的方法。思路如下:

将图片编码成字节码,然后直接引用字节码再解码成图片显示出来。

1. 传入需要编码的图片路径img_path,通过b64encode()方法编码成字节码。注意,当图片太大时,通过print()输出的信息可能是不完整的,直接复制这个信息会导致图片解码不出来,所以最好把字节码保存到一个文件,后续需要使用图片时就可以把文件里面的字节码复制到代码中来直接引用。

2. 有了图片的字节码,我们就可以通过b64decode()解码出来将图片保存到本地,然后GUI组件引用这个路径下的图片就可以显示了。注意,要先把图片解码出来到本地,组件才能显示哦,顺序不要搞错了。

import base64

def encode_image(img_path: str):
    # 获取图片的字节码
    with open(img_path, 'rb') as img:
        # img_data数据可能混杂其他符号或者不完整,调用时需要检查下
        img_data = base64.b64encode(img.read())   
        print(img_data)

    # 图片太大时,print打印出来的信息会不完整
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值