📜  tkinter 中的图像 (1)

📅  最后修改于: 2023-12-03 15:20:38.343000             🧑  作者: Mango

Tkinter中的图像

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()

上述代码中,首先导入了ImageImageTk模块,分别用于加载图片和将图片转化为PhotoImage格式。接着创建一个窗口,使用Image.open()方法加载图片,并通过ImageTk.PhotoImage()方法将图片转化为PhotoImage格式。最后通过tk.Label方法显示图片,并进入消息循环。

需要注意的是,PhotoImage对象需要保持命名,否则链接将被Python垃圾回收机制回收,导致图片无法显示。

显示GIF图片

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中

将图片显示在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中显示图片的介绍。如果需要实现动图和图片处理功能,可以考虑使用更强大的图像处理库。