How to display an image using tkinter in gui How to display an image using tkinter in gui tkinter tkinter

How to display an image using tkinter in gui


Judging by your question you might not have the file in a good location; also you are not providing a path to those locations. So lets break it down a little.

You said you placed the image in the Python35 folder. Without knowing more I would imagine you are talking about the python default directory located somewhere like C:\program files\Python35.

If this is the case then change the line:

im=Image.open("haridwar.jpg") 

To this:

im=Image.open("C:\program files\Python35\haridwar.jpg")

though this is not a good place for your image. We will get to that in a sec.

As you stated you also tried your desktop. So you would want to provide a path to your desktop.

Something like this:

im=Image.open("C:/Users/your_user_folder/Desktop/haridwar.jpg")

This is also not a great place for your file.

Lets try something else. Lets put the file inside your working python directory.

For example if your main.py file is located inside of

"C:/myworkspace/my_program/main.py"

then you can place that image in the same my_program folder and your code should work as is.

If you want to have a folder just for images you could have one in a directory that looks like this:

"C:/myworkspace/my_program/my_images/haridwar.jpg"

In this case you can provide a short path like this:

im=Image.open("./my_images/haridwar.jpg") 

notice the . before the /my_image folder. This is used to tell Python it can look inside its current working directory for the folder.


I tried your code using a directory/filename i know was correct, and it works. You have an error in the spelling of your directory/filename or you got the directory wrong.

Make sure you have the directory and file name correct.

For example, I have "Image.jpg" on my desktop

import tkinter as tk  from PIL import Image,ImageTk  root = tk.Tk()  root.title("display image")  im=Image.open("C:/Users/<myname>/Desktop/Image.jpg")  #This is the correct location and spelling for my image locationphoto=ImageTk.PhotoImage(im)  cv = tk.Canvas()  cv.pack(side='top', fill='both', expand='yes')  cv.create_image(10, 10, image=photo, anchor='nw')  root.mainloop()