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.
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:
Please note that the screenshot was made on a setup without window decoration and with dark GUI color scheme.
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)