Image in Tkinter Label?

51,822

Solution 1

For debugging purpose try to avoid the use of PIL and load some *.gif (or another acceptable) file directly in PhotoImage, like shown below, if it'll work for you then just convert your image in *.gif or try to deal with PIL.

from tkinter import *

def make_label(parent, img):
    label = Label(parent, image=img)
    label.pack()

if __name__ == '__main__':
    root = Tk()
    frame = Frame(root, width=400, height=600, background='white')
    frame.pack_propagate(0)    
    frame.pack()
    img = PhotoImage(file='logo.gif')
    make_label(frame, img)

    root.mainloop()

Solution 2

       img = Image.open('image_name')
       self.tkimage = ImageTk.PhotoImage(img)
       Label(self,image = self.tkimage).place(x=0, y=0, relwidth=1, relheight=1)
Share:
51,822
Shivamshaz
Author by

Shivamshaz

Updated on February 09, 2020

Comments

  • Shivamshaz
    Shivamshaz about 4 years

    I am new to python GUI programming, I want to add a image in my tkinter label, I have created the following code but the window is not showing my image. Path of image is the same folder as this code.

    import ImageTk
    import Tkinter as tk
    from Tkinter import *
    from PIL import Image
    
    
    def make_label(master, x, y, w, h, img, *args, **kwargs):
        f = Frame(master, height = h, width = w)
        f.pack_propagate(0) 
        f.place(x = x, y = y)
        label = Label(f, image = img, *args, **kwargs)
        label.pack(fill = BOTH, expand = 1)
        return label
    
    
    if __name__ == '__main__':
        root = tk.Tk()
        frame = tk.Frame(root, width=400, height=600, background='white')
        frame.pack_propagate(0)
        frame.pack()
        img = ImageTk.PhotoImage(Image.open('logo.png'))
        make_label(root, 0, 0, 400, 100, img)
        root.mainloop()