Skip to content Skip to sidebar Skip to footer

Tkinter Image Transparency

So I have 2 images that I would like to display on top of each other. The image on top should have transparency so that the one on the bottom is visible. Here is my code so far: fr

Solution 1:

Try this

from PIL import Image, ImageTk
from Tkinter import Tk, Label

root = Tk()

defRBGAImage(path):
    return Image.open(path).convert("RGBA")

face = RBGAImage("faces/face.gif")
eyes = RBGAImage("faces/eyes1.png")

face.paste(eyes, (0, 0), eyes)

facepic = ImageTk.PhotoImage(face)

label1 = Label(image=facepic)
label1.grid(row = 0, column = 0)

root.mainloop()

I do not have both your source images, so I can not be sure it will work with them. Please provide the originals of both if there is any issue.

Solution 2:

You can use Image.alpha_composite to create a new composited image.

from PIL import Image, ImageTk
from Tkinter import Tk, Label

root = Tk()

defRBGAImage(path):
    return Image.open(path).convert("RGBA")

face = RBGAImage("faces/face.gif")
eyes = RBGAImage("faces/eyes1.png")

c = Image.alpha_composite(face, eyes)

facepic = ImageTk.PhotoImage(c)

label1 = Label(image=facepic)
label1.grid(row = 0, column = 0)

root.mainloop()

Post a Comment for "Tkinter Image Transparency"