alessandro
alessandro

Reputation: 3984

how to embed an image in a text widget

I know it is possible to embed an image in a Tkinter text widget, but I've been unable to find some simple example code. Specifically, I need to embed a jpg, so according to the docs I think I need to use the photoimage class

I tried to use this:

  img=PhotoImage ( file=imgfn )
  text.image_create(image=img)

where imgfn is the image filename, and text is my text widget, but I get "_tkinter.TclError: couldn't recognize data in image file ..."

thanks for any help!

Upvotes: 4

Views: 5645

Answers (1)

Bryan
Bryan

Reputation: 6699

PhotoImage only handles GIF and PGM/PPM files. In order to use JPEG with Tkinter, you can use the Python Imaging Library (PIL) to create a PhotoImage.

from PIL import Image, ImageTk

img = Image.open("yourimg.jpg")
photoImg = ImageTk.PhotoImage(img)

Alternatively you could just one of the other supported formats for PhotoImage if possible.

Upvotes: 5

Related Questions