如何解决Tkinter运行时报TclError无法识别图像文件数据的错误
问题根因
Tkinter 内置的 PhotoImage 类原生仅支持 PNG、GIF、PPM、PGM 四类图片格式,无法直接识别 JFIF、JPG、WEBP 等其他格式的图片,和文件路径是否正确、文件是否存在没有关联。
可行解决方案
方案1:直接转换图片格式(无需安装第三方库)
将你要加载的 .jfif 格式图片通过系统自带画图工具或其他图片编辑工具,另存为 PNG/GIF 格式,再修改代码中文件路径即可,修改后示例代码如下:
from tkinter import * window=Tk() window.geometry("420x420") window.title('My first GUI programme') # 替换为转成png格式后的文件路径 source='D:\\Desktop\\op.png' icon=PhotoImage(file=source) window.iconphoto(True, icon) window.mainloop()
方案2:使用Pillow库兼容更多图片格式
如果需要直接加载JFIF、JPG等格式的图片,可通过Python常用的图片处理库Pillow实现,操作步骤如下:
- 安装Pillow库,执行命令:
pip install pillow - 修改代码为如下格式即可:
from tkinter import * from PIL import Image, ImageTk window=Tk() window.geometry("420x420") window.title('My first GUI programme') source='D:\\Desktop\\op.jfif' # 先用PIL打开图片,再转成Tkinter支持的PhotoImage格式 icon=ImageTk.PhotoImage(Image.open(source)) window.iconphoto(True, icon) window.mainloop()
内容的提问来源于stack exchange,提问作者Arpit Singh
相关产品推荐
相关产品推荐

