You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Tkinter设置GUI窗口logo时无法识别logo.jpg图片数据报错

报错原因

Tkinter 内置的 PhotoImage 原生仅支持 GIF、PNG、PPM、PGM 这几种图片格式,不支持JPG/JPEG格式解析,直接读取.jpg文件就会触发couldn't recognize data in image file的报错。

解决方法

可根据实际需求二选一:

  • 方法一:转换图片格式(无需额外安装依赖)
    直接用系统自带画图工具、图片编辑软件,把logo.jpg另存为PNG/GIF格式,修改代码中对应的文件名即可,可直接运行的示例代码:

    from tkinter import *
    
    window = Tk()
    window.geometry("420x420")
    window.title("Backrooms in A Nutshell")
    
    # 读取转换后的PNG格式logo
    icon = PhotoImage(file='logo.png')
    window.iconphoto(True, icon)
    
    window.mainloop()
    
  • 方法二:借助Pillow库直接加载JPG文件
    如果不想转换图片格式,安装Python图像处理库Pillow即可实现JPG格式的读取。
    第一步先安装Pillow,在终端执行命令:

    pip install pillow
    

    第二步修改代码,用Pillow加载图片后转换为Tkinter可识别的对象:

    from tkinter import *
    from PIL import Image, ImageTk
    
    window = Tk()
    window.geometry("420x420")
    window.title("Backrooms in A Nutshell")
    
    # 加载JPG格式logo
    img = Image.open('logo.jpg')
    icon = ImageTk.PhotoImage(img)
    window.iconphoto(True, icon)
    
    window.mainloop()
    

注意:如果把icon对象定义在局部函数内,要保留对该对象的全局引用,避免被Python垃圾回收机制回收导致窗口图标不显示。

内容的提问来源于stack exchange,提问作者Jason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 13:15:35