来源: https://www.cnpython.com/qa/173079
tk写完打包,图片加载不了,很烦,干脆b64内部加载得了
把图片转成b64
with open("logo.png", "rb") as image_file:
image_data_base64_encoded_string = base64.b64encode(image_file.read())
write_data = "logo = %s" % image_data_base64_encoded_string
f = open("logo.py","w+")
f.write(write_data)
f.close()
如何使用
img变量就是上面的文件里的,复制进去就行了
import tkinter
window = tkinter.Tk()
photo = tkinter.PhotoImage(data=img)#file:t图片路径
imgLabel = tkinter.Label(window,image=photo).pack()
window.mainloop()
ico图标如何使用b64
答案: 用iconphoto代替iconbitmap
logo_ico = tk.PhotoImage(data=img)
windos.iconphoto(False,logo_ico)
草。。。最后在新建的小窗口还是报错了
还是绝对路径吧。。。要命
def resource_path(relative_path):
if getattr(sys, 'frozen', False): #是否Bundle Resource
base_path = sys._MEIPASS
else:
base_path = path.abspath(".")
return path.join(base_path, relative_path)
#print(resource_path('logo.png'))