如何用python tkinter插入显示图片?

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

在 Python 的 tkinter 中显示图片,主要使用 PhotoImage 类。但要注意它只支持 GIFPGM/PPM 格式。如果想显示常见的 JPG、PNG 等格式,需要用 Pillow(PIL)库辅助。

1. 显示 GIF 图片(原生支持)

tkinter 原生支持 GIF,可以直接用 PhotoImage 加载:

import tkinter as tk
from tkinter import PhotoImage

root = tk.Tk() root.title("显示GIF图片")

注意:路径要正确,且图片必须是 .gif 格式

img = PhotoImage(file="example.gif")

label = tk.Label(root, image=img) label.pack()

保持引用,防止被垃圾回收

root.image = img

root.mainloop()

2. 显示 JPG/PNG 等格式(使用 Pillow)

安装 Pillow:

pip install pillow

然后这样使用:

import tkinter as tk
from PIL import Image, ImageTk

root = 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,兼容性更好。

基本上就这些,不复杂但容易忽略引用问题。