I\'m trying to add a background image to a canvas in Python. So far the code looks like this:
from Tkinter import *
from PIL import ImageTk,Image
... other
just change to :
image = Image.open("~~~path.png")
backgroundImage=ImageTk.PhotoImage(image)
believe me this will 100% work
PhotoImage is not an attribute of the Tk()
instances (root
). It is a class from Tkinter
.
So, you must use:
backgroundImage = PhotoImage("D:\Documents\Background.gif")
Beware also Label
is a class from Tkinter
...
Edit:
Unfortunately, Tkinter.PhotoImage
only works with gif files (and PPM).
If you need to read png files you can use the PhotoImage
(yes, same name) class in the ImageTk
module from PIL
.
So that, this will put your png image in the canvas:
from Tkinter import *
from PIL import ImageTk
canvas = Canvas(width = 200, height = 200, bg = 'blue')
canvas.pack(expand = YES, fill = BOTH)
image = ImageTk.PhotoImage(file = "C:/Python27/programas/zimages/gato.png")
canvas.create_image(10, 10, image = image, anchor = NW)
mainloop()
from Tkinter import *
from PIL import ImageTk
canvas = Canvas(width = 200, height = 200, bg = 'blue')
canvas.pack(expand = YES, fill = BOTH)
image = ImageTk.PhotoImage(file = "C:/Python27/programas/zimages/gato.png")
canvas.create_image(10, 10, image = image, anchor = NW)
mainloop()