Tkinter,覆盖在背景图象顶部的前景图象与透明度

时间:2014-05-26 19:17:31

标签: python image tkinter transparency

我有2张图片,格式为png。 第二个图像是具有透明背景的形状。

第一张图片:

enter image description here

第二张图片:

enter image description here

我不能在给定坐标(x,y)的第一个图像的顶部制作第二个图像,第一个图像通过第二个图像的透明区域可见。

需要的结果:

enter image description here

import Tkinter
import Image, ImageTk

# open an image
head = Image.open('background2.png')
hand = Image.open('foreground2.png')
root = Tkinter.Tk()  # A root window for displaying objects

head.paste(hand,(20,20))

# Convert the Image object into a TkPhoto object
tkimage = ImageTk.PhotoImage(head)

root.mainloop() # Start the GUI

显示空的tk窗口。

2 个答案:

答案 0 :(得分:3)

谢谢布莱恩。 得到它,除了标签,透明度的问题从另一个问题here解决(相同的前景图像用作面具)

我想,这就是我的-2分: - |

现在它按预期工作。

from Tkinter import *
import Tkinter
from PIL import Image, ImageTk

root = Tkinter.Tk()  # A root window for displaying objects
# open image
imageHead = Image.open('head.png')
imageHand = Image.open('hand.png')

imageHead.paste(imageHand, (20, 40), imageHand)
# Convert the Image object into a TkPhoto object
tkimage = ImageTk.PhotoImage(imageHead)

panel1 = Label(root, image=tkimage)
panel1.grid(row=0, column=2, sticky=E)
root.mainloop()  # Start the GUI

答案 1 :(得分:0)

嘿伙计们,我知道我迟到了 6 年,但我可以帮助你们

from PIL import Image

import numpy as np

# Create Image
img = Image.open("forground.png")

background = Image.open("background.png")

background.paste(img, (0, 0), img)
background.save('NewImg.png',"PNG")

NewImg = Image.open('NewImg.png')

# Use Image
tkimage = ImageTk.PhotoImage(NewImg)

panel1 = Label(root, image=tkimage)
panel1.grid(row=0, column=2, sticky=E)
root.mainloop()  # Start the GUI

所以你所要做的就是在处理文件时使用 NewImg。 此代码从两个图像中创建一个图像,然后在程序中使用该图像。