使用PIL在Tkinter中加载图像
在这篇文章中,我们将学习如何使用PIL模块从用户系统加载图像到Tkinter窗口。这个程序将打开一个对话框,从任何目录中选择所需的文件并在tkinter窗口中显示。
安装要求 –
使用此命令来安装Tkinter :
pip install python-tk
使用此命令来安装PIL:
pip install pillow
导入模块 –
from tkinter import *
# loading Python Imaging Library
from PIL import ImageTk, Image
# To get the dialog box to open when required
from tkinter import filedialog
注意: ImageTk模块包含支持从PIL图像创建和修改Tkinter BitmapImage和PhotoImage对象,filedialog用于当你从系统的任何地方打开文件或将文件保存在一个特定的位置或地点时出现对话框。
创建一个由按钮组成的Tkinter窗口的函数 –
# Create a window
root = Tk()
# Set Title as Image Loader
root.title("Image Loader")
# Set the resolution of window
root.geometry("550x300 + 300 + 150")
# Allow Window to be resizable
root.resizable(width = True, height = True)
# Create a button and place it into the window using grid layout
btn = Button(root, text ='open image', command = open_img).grid(
row = 1, columnspan = 4)
root.mainloop()
按钮对象被创建为文本 “打开图像”。点击它时,open_image函数将被调用。
将图像放到窗口上的功能 –
def open_img():
# Select the Imagename from a folder
x = openfilename()
# opens the image
img = Image.open(x)
# resize the image and apply a high-quality down sampling filter
img = img.resize((250, 250), Image.ANTIALIAS)
# PhotoImage class is used to add image to widgets, icons etc
img = ImageTk.PhotoImage(img)
# create a label
panel = Label(root, image = img)
# set the image as img
panel.image = img
panel.grid(row = 2)
openfilename函数将返回图像的文件名。
返回从对话框中选择的文件名的函数 –
def openfilename():
# open file dialog box to select image
# The dialogue box has a title "Open"
filename = filedialog.askopenfilename(title ='"pen')
return filename
要运行这段代码,用扩展名.py保存它,然后打开cmd(命令提示符),移动到保存文件的位置,然后写下如下内容
python "filename".py
并按回车键,它就会运行。或者可以通过简单地双击你的.py扩展文件直接运行。