I'm developing an application with Tkinter that uses a database of png
image files for icons. In order to use said images in the application, I open them using PIL's Image.open
, run it through the ImageTk.PhotoImage
function, then pass it to the widget constructor.
The problem is, I'm trying to port my entire project over to Python 3.x, and because of PIL's lack of support for Python 3, I have no idea how to load the icons into the application.
If anyone knew of a solution that would allow me to use the icons without having to convert all of them to .gif
bitmaps, I would be very grateful!
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 color
text.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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With