Loading Images in Tkinter using PIL

04 Dec, 2021
In this article, we will learn how to load images from user system to Tkinter window using PIL module. This program will open a dialogue box to select the required file from any directory and display it in the tkinter window.Install the requirements – Use this command to install Tkinter : 
pip install python-tk
Use this command to install PIL : 
pip install pillow
Importing modules – 
Python3
from tkinter import * # loading Python Imaging Libraryfrom PIL import ImageTk, Image # To get the dialog box to open when requiredfrom tkinter import filedialog
Note: The ImageTk module contains support to create and modify Tkinter BitmapImage and PhotoImage objects from PIL images and filedialog is used for the dialog box to appear when you are opening file from anywhere in your system or saving your file in a particular position or place.   Function to create a Tkinder window consisting of a button –  
Python3
# Create a windowroot = Tk() # Set Title as Image Loaderroot.title("Image Loader") # Set the resolution of windowroot.geometry("550x300 + 300 + 150") # Allow Window to be resizableroot.resizable(width = True, height = True) # Create a button and place it into the window using grid layoutbtn = Button(root, text ='open image', command = open_img).grid(                                        row = 1, columnspan = 4)root.mainloop()
The Button object is created with text ‘open image’. On clicking it the open_image function will be invoked. Function to place the image onto the window –  
Python3
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)
The openfilename function will return the file name of image. Function to return the file name chosen from a dialog box –  
Python3
def openfilename():     # open file dialog box to select image    # The dialogue box has a title "Open"    filename = filedialog.askopenfilename(title ='"pen')    return filename
To run this code, save it by the extension .py and then open cmd (command prompt) and move to the location of the file saved and then write the following –  
python "filename".py 
and press enter and it will run. Or can be run directly by simply double-clicking your .py extension file.   Output: https://media.geeksforgeeks.org/wp-content/uploads/20191121233525/Screencast-from-Thursday-21-November-2019-111137-IST2.webm 
kashishsoda
sagar0719kumar
varshagumber28
Python-pil
Python-tkinter
Python
Technical Scripter
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Different ways to create Pandas Dataframe
Enumerate() in Python
Read a file line by line in Python
Python String | replace()
How to Install PIP on Windows ?
*args and **kwargs in Python
Iterate over a list in Python
Python Classes and Objects
Convert integer to string in Python