答案:tkinter中显示图片需用PhotoImage类,原生支持GIF格式;对于JPG、PNG等格式需借助Pillow库的ImageTk.PhotoImage;加载后必须保存引用防止被回收,并可使用Pillow调整大小。

在 Python 的 tkinter 中显示图片,主要使用 PhotoImage 类。但要注意它只支持 GIF 和 PGM/PPM 格式。如果想显示常见的 JPG、PNG 等格式,需要用 Pillow(PIL)库辅助。
1. 显示 GIF 图片(原生支持)
tkinter 原生支持 GIF,可以直接用 PhotoImage 加载:
import tkinter as tk from tkinter import PhotoImageroot = tk.Tk() root.title("显示GIF图片")
注意:路径要正确,且图片必须是 .gif 格式
img = PhotoImage(file="example.gif")
立即学习“Python免费学习笔记(深入)”;
label = tk.Label(root, image=img) label.pack()
保持引用,防止被垃圾回收
root.image = img
米歌MWM实用企业网站管理系统3.1下载米歌_实用企业网站管理系统 Mixge Web Manage (简称:米歌MWM),我们的与众不同在于:彻底颠覆了传统网站的固定模式变成可操控模式。米歌WMW简单,实用,灵活,为非专业人士而设计开发。正如, 第一步添加栏目,第二步发布内容,剩下的就是一些设置。新增功能:1.增加了右侧的联系方式(包括电话、QQ、MSN和旺旺);2.自动缩略图功能,在首页提取和栏目提取自动显示缩略图,并且在文章插入大
root.mainloop()
2. 显示 JPG/PNG 等格式(使用 Pillow)
安装 Pillow:
pip install pillow
然后这样使用:
import tkinter as tk from PIL import Image, ImageTkroot = tk.Tk() root.title("显示JPG/PNG图片")
打开并转换图片
image = Image.open("example.jpg") # 支持 jpg, png, webp 等 photo = ImageTk.PhotoImage(image)
label = tk.Label(root, image=photo) label.pack()
保持引用
root.image = photo
root.mainloop()
3. 调整图片大小
用 Pillow 可以轻松缩放图片:
image = Image.open("example.jpg")
image = image.resize((300, 200)) # 调整为 300x200
photo = ImageTk.PhotoImage(image)
4. 注意事项
- 一定要保存图片对象的引用(如 root.image = photo),否则会被 Python 回收,界面就看不到图了。
- 路径错误或格式不支持会报错,确保文件存在且格式正确。
- 建议统一用 Pillow 的 ImageTk.PhotoImage,兼容性更好。
基本上就这些,不复杂但容易忽略引用问题。











