详解使用PIL在Tkinter中加载图像

  • Post category:Python

下面是关于使用PIL在Tkinter中加载图像的完整攻略:

1. 安装Pillow

PIL已经废弃很久了,而Pillow是一个PIL的替代库,同时也是一个用Python编写的图像处理库。因此,在使用PIL加载图像前,需要安装Pillow库。可以通过在命令行中输入以下命令进行安装:

pip install Pillow

2. 导入必要的库

在程序开始前,需要导入相关的库,其中包括Pillow库和Tkinter库。如下所示:

from PIL import Image, ImageTk
import tkinter as tk

3. 创建窗口

在使用Tkinter加载图像前,需要创建一个窗口。如下所示:

root = tk.Tk()  # 创建一个窗口
root.geometry("300x300")  # 设置窗口大小

这里创建一个大小为300×300的窗口。

4. 加载图像

使用Pillow库的Image.open()方法加载一个图片,并使用ImageTk.PhotoImage()方法将图像转换成Tkinter的PhotoImage对象。

image = Image.open("example.jpg")
photo = ImageTk.PhotoImage(image)

需要注意的是,PhotoImage对象必须被保存在其他变量中,否则图像不会在窗口中正确显示。

5. 在窗口中显示图像

可以使用Tkinter库的Labelpack()方法来将图像显示在窗口中。

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

在窗口中创建一个标签,并将PhotoImage对象分配给一个标签,随后调用pack()方法,就可以将图像显示在窗口中了。

示例1:用Tkinter显示全彩图片

下面是一个完整的程序,加载一个全彩图片并在Tkinter窗口中显示出来。

from PIL import Image, ImageTk
import tkinter as tk

root = tk.Tk()
root.geometry("400x400")

image = Image.open("example.jpg")
photo = ImageTk.PhotoImage(image)

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

root.mainloop()

示例2:用Tkinter显示黑白图片

可以使用Image.convert()方法将图像转换为黑白模式。以下是一个加载并显示黑白图像的完整程序:

from PIL import Image, ImageTk
import tkinter as tk

root = tk.Tk()
root.geometry("400x400")

image = Image.open("example.jpg")
image = image.convert("L")  # 转换为黑白模式
photo = ImageTk.PhotoImage(image)

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

root.mainloop()

这个程序将图像转换为灰度模式,在Tkinter窗口中显示出来。