Emilio
Emilio

Reputation: 11

Images not showing up in tkinter GUI window

Basically I'm having trouble opening images (.jpg) in a tkinter GUI window.

I followed this tutorial: https://www.youtube.com/watch?v=lt78_05hHSk

But I just get a blank window.

from tkinter import *

root = Tk()

photo = PhotoImage(file=r"C:\Users\xxxx\OneDrive\Desktop\123k.jpg")
# photo = PhotoImage(file="123k.jpg")
label = Label(root, image=photo)
label.pack()

root.mainloop()

The file path is correct and .jpg files are compatible with tkinter. What could be going on?

I get this error

Traceback (most recent call last): 
File "C:\Users\xxx\ytrewq.py", line 5, 
in <module> photo = PhotoImage(file=r"C:\Users\xxxx\OneDrive\Desktop\123k.jpg") 
File "C:\Users\xxxx\AppData\Local\Programs\Thonny\lib\tkinter_init_.py", line 3545,
in init Image.__init__(self, 'photo', name, cnf, master, **kw)
File "C:\Users\xxxx\AppData\Local\Programs\Thonny\lib\tkinter_init_.py", line 3501, 
in init self.tk.call(('image', 'create', imgtype, name,) + options) 
_tkinter.TclError: couldn't recognize data in image file 
"C:\Users\xxxx\OneDrive\Desktop\123k.jpg"

Upvotes: 1

Views: 611

Answers (1)

Muhammad Nur
Muhammad Nur

Reputation: 91

This error occurs because only PhotoImage function can't recognize the .jpg formate image. For this, you could use png formate or you could use

Image.open(path_of_the_file) and then

ImageTk.PhotoImage(img_object)

for this Image and ImageTk you have to import this from PIL module

from PIL import Image, ImageTk

The hole solution code:

from tkinter import *
from PIL import Image, ImageTk

root = Tk()

# photo = PhotoImage(file=r"C:\Users\xxxx\OneDrive\Desktop\123k.jpg")
# photo = PhotoImage(file="123k.jpg")
img = Image.open(file=r"C:\Users\xxxx\OneDrive\Desktop\123k.jpg")
photo = ImageTk.PhotoImage(img)

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

root.mainloop()

Upvotes: 1

Related Questions