Import tkinter
from tkinter import *
from PIL import Image, ImageTk
root = Tk()
# Create a photoimage object of the image in the path
image1 = Image.open("<path/image_name>")
test = ImageTk.PhotoImage(image1)
label1 = tkinter.Label(image=test)
label1.image = test
# Position image
label1.place(x=<x_coordinate>, y=<y_coordinate>)
root.mainloop()
# Import module
from tkinter import *
# Create object
root = Tk()
# Adjust size
root.geometry("400x400")
# Add image file
bg = PhotoImage(file = "Your_image.png")
# Show image using label
label1 = Label( root, image = bg)
label1.place(x = 0, y = 0)
label2 = Label( root, text = "Welcome")
label2.pack(pady = 50)
# Create Frame
frame1 = Frame(root)
frame1.pack(pady = 20 )
# Add buttons
button1 = Button(frame1,text="Exit")
button1.pack(pady=20)
button2 = Button( frame1, text = "Start")
button2.pack(pady = 20)
button3 = Button( frame1, text = "Reset")
button3.pack(pady = 20)
# Execute tkinter
root.mainloop()
You need to apply the grid method to the label that contains the image, not the image object:
bg_image = PhotoImage(file ="pic.gif")
x = Label (image = bg_image)
x.grid(row = 0, column = 0)
http://effbot.org/tkinterbook/photoimage.htm