Tkinter中使用base64编码的图像

因为在python的图形界面工具tkinter中可能使用一些本地图像作为程序图标或者按钮图片,甚至是背景图。但是不管是用pyinstaller或者nuitka将py打包成exe文件,都不会把本地图片打包,也可能因为一些路径问题造成图片不能显示。

以前情况造成的结果就是,在本机可以使用打包好的exe,但复制到其他电脑就开始报错,因为按照原路径找不到图片。解决这种问题的一个思路是,将图片文件用base64编码,直接写到原py文件的代码里面。

可以先到一些在线转化base64的网站把图片转换成base64编码备用(注意不要复制开头的data:image/*;base64,)网站可以用这个 https://base64.us/

设置一个exe的图标

import base64
import os
import tkinter as tk

app = tk.Tk()
app.title("test")
app.geometry('550x550')                
temp= open('temp.ico','wb+') #创建一个临时文件储存icon
tempb64=base64.b64decode('图片转化好的base64编码')   #将编码用base64解码读入
temp.write(tempb64)  #将上面读入的编码写入临时文件
temp.close() 
app.iconbitmap('temp.ico')  #设置exe的icon
os.remove('temp.ico') #移除临时文件
app.mainloop()

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山鯨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值