首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在将.py转换为.exe时添加图像文件?

如何在将.py转换为.exe时添加图像文件?
EN

Stack Overflow用户
提问于 2020-04-03 17:21:59
回答 1查看 579关注 0票数 0

我已经创建了一个基于Tkinter的应用程序,它使用图像作为按钮的图标。

现在我使用auto-py-to-exe (PyInstaller)将它转换为.exe。

但是输出文件没有运行,因为它找不到所需的图像。如何将图像文件与.exe文件合并?

下面是应用程序代码:

代码语言:javascript
复制
import tkinter as tk
from tkinter import *


root = tk.Tk()
img = PhotoImage(file=r'E:\project\videos\icon\rec.png')
root.tk.call('wm', 'iconphoto', root._w, img)
root.title('Cam Recorder')
cam_icon = PhotoImage(file=r'E:\project\videos\icon\webcam0.png')
com_icon = PhotoImage(file=r'E:\project\videos\icon\webcam1.png')


def change_w():
    if webcam_btn.image == cam_icon:
        webcam_btn.config(image=com_icon)
        webcam_btn.image = com_icon
    else:
        webcam_btn.config(image=cam_icon)
        webcam_btn.image = cam_icon


frame = tk.Frame(root)
frame.pack()

webcam_btn = tk.Button(
    frame,
    image=cam_icon,
    width=70,
    height=80,
    relief=FLAT,
    command=change_w,
    )
webcam_btn.grid(row=0, column=2)
webcam_btn.image = cam_icon
root.mainloop()

下面是auto-py-to-exe的截图:

EN

回答 1

Stack Overflow用户

发布于 2020-04-03 17:40:02

您可以尝试使用临时文件,将其二进制文件作为byte嵌入到您的代码中,如下所示: 1)使用print(open('path-to-img', 'rb').read())获取二进制文件。

2)添加

代码语言:javascript
复制
with open('your_temp_path.png', 'wb') as f:
    f.write(b'your_binary_data')

3)在代码末尾使用os.remove('your_temp_path.png')删除临时文件。

希望这对你有帮助!

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61008713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档