📅  最后修改于: 2023-12-03 15:20:38.343000             🧑  作者: Mango
Tkinter是Python的标准GUI库之一,提供了创建图形化用户界面的工具。其中包含了显示图像的功能。下面将介绍Tkinter中的图像相关知识。
Tkinter中支持的图片格式有:GIF、PPM/PGM、XBM/XPM和PNG等。其中,GIF是支持动图的,而其他格式只支持静态图片。
使用Pillow
库可以方便地加载各种图片格式。先安装Pillow
库:pip install Pillow
加载图片的代码如下:
from PIL import Image, ImageTk
import tkinter as tk
# 创建窗口
window = tk.Tk()
# 加载图片
image = Image.open("example.png")
photo = ImageTk.PhotoImage(image)
# 显示图片
label = tk.Label(window, image=photo)
label.pack()
# 进入消息循环
window.mainloop()
上述代码中,首先导入了Image
和ImageTk
模块,分别用于加载图片和将图片转化为PhotoImage
格式。接着创建一个窗口,使用Image.open()
方法加载图片,并通过ImageTk.PhotoImage()
方法将图片转化为PhotoImage
格式。最后通过tk.Label
方法显示图片,并进入消息循环。
需要注意的是,PhotoImage
对象需要保持命名,否则链接将被Python垃圾回收机制回收,导致图片无法显示。
Tkinter中支持显示GIF动图,只需将上述代码中的图片格式改为GIF即可。
from PIL import Image, ImageTk
import tkinter as tk
# 创建窗口
window = tk.Tk()
# 加载GIF动图
image = Image.open("example.gif")
photo = ImageTk.PhotoImage(image)
# 显示GIF动图
label = tk.Label(window, image=photo)
label.pack()
# 进入消息循环
window.mainloop()
将图片调整为固定大小,可以使用PIL.Image.resize()
方法对图片进行缩放。
from PIL import Image, ImageTk
import tkinter as tk
# 创建窗口
window = tk.Tk()
# 加载图片并调整大小
image = Image.open("example.png").resize((200, 200))
photo = ImageTk.PhotoImage(image)
# 显示图片
label = tk.Label(window, image=photo)
label.pack()
# 进入消息循环
window.mainloop()
将图片显示在Canvas
中,可以使用tk.Canvas.create_image()
方法。需要注意的是,图片需要保持命名,否则将无法显示。
from PIL import Image, ImageTk
import tkinter as tk
# 创建窗口
window = tk.Tk()
# 创建Canvas
canvas = tk.Canvas(window, width=300, height=300)
canvas.pack()
# 加载图片并调整大小
image = Image.open("example.png").resize((200, 200))
photo = ImageTk.PhotoImage(image)
# 将图片显示在Canvas中
canvas.create_image(150, 150, image=photo)
# 进入消息循环
window.mainloop()
以上就是关于Tkinter中显示图片的介绍。如果需要实现动图和图片处理功能,可以考虑使用更强大的图像处理库。