Embedding an image in a Tkinter Canvas widget using PIL

I am trying to insert an image into a Tkinter canvas using PIL, and for some reason it is not showing. Any ideas?

No errors or warnings. Just an empty Tk window.

My code is:

import Tkinter from PIL import ImageTk, Image class image_manip(Tkinter.Tk): def __init__(self,parent): Tkinter.Tk.__init__(self,parent) self.ImbImage = Tkinter.Canvas(self) self.ImbImage.pack() i = ImageTk.PhotoImage(Image.open('test.png')) self.ImbImage.create_image(0, 0, image=i) def run(): image_manip(None).mainloop() if __name__ == "__main__": run() 
+4
source share
1 answer

I assume the image is getting garbage collection. Try to save the link to "i" (for example: self.image = i)

+7
source

Source: https://habr.com/ru/post/1337709/


All Articles