PIL ImageTk equivalent in Python 3.x PIL ImageTk equivalent in Python 3.x tkinter tkinter

PIL ImageTk equivalent in Python 3.x


PNG files, even with transparency, are correctly displayed in tkinter and ttk in python 3.4.1 on Linux, even though only GIF and PPM/PGM support is documented.

Example PNG File With Transparency And Alpha

Above PNG image contains transparency.

from tkinter import *          root = Tk()                    photo = PhotoImage(file="example.png")photo_label = Label(image=photo)photo_label.grid()             photo_label.image = photo      text = Label(text="Text") # included to show background colortext.grid()    root.mainloop()

Above code renders the image correctly with transparency as seen below:

PNG Test Image In Python 3.4.1 tkinter with text

Please note that the screenshot was made on a setup without window decoration and with dark GUI color scheme.


You can use Pillow to work with png images, in Python 3.3 or older versions.

Taken from here:

Pillow >= 2.0.0 supports Python versions: 2.6, 2.7, 3.2, 3.3. Pillow < 2.0.0 supports Python versions: 2.4, 2.5, 2.6, 2.7.


The example displays an image on the canvas.

from PIL import Image, ImageTk# From the PIL (Python Imaging Library) module, we import the Image and ImageTk modules.self.img = Image.open("tatras.jpg")self.tatras = ImageTk.PhotoImage(self.img)# Tkinter does not support JPG images internally. As a workaround, we# use the Image and ImageTk modules.canvas = Canvas(self, width=self.img.size[0]+20,  height=self.img.size[1]+20)# We create the Canvas widget. It takes the size of the image into account. It is 20px wider and 20px higher than the actual image size.canvas.create_image(10, 10, anchor=NW, image=self.tatras)