所以我有2张图像,应该假设1张图像是背景,另外1张只是角色的图像。 我可以将一个图像放在另一个图像上,但是即使它是PNG文件,该图像也具有白色边框。
以下是两张独立图片: https://imgur.com/a/SmE5lgC 抱歉,我没有直接发布图片,但由于没有10个信誉点而无法发布。
我尝试将其转换为RGBA,但是发生了同样的事情。
from tkinter import *
from PIL import Image
root = Tk()
root.title("Game")
background = PhotoImage(file="back.png")
backgroundlabel = Label(root, image=background)
backgroundlabel.pack()
character = PhotoImage(file="hero.png")
characterlabel = Label(root, image=character)
characterlabel.place(x=0,y=0)
root.mainloop()
答案 0 :(得分:1)
您只需要在Tkinter中使用canvas
小部件即可。仅画布小部件支持透明度。这与Tkinter如何绘制显示有关。截至目前,您的代码仅覆盖了两个图像。除非您使用画布小部件,否则Tkinter不知道如何使它们透明化。
请参见以下代码:
from tkinter import *
from PIL import Image
root = Tk()
root.title("Game")
frame = Frame(root)
frame.pack()
canvas = Canvas(frame, bg="black", width=700, height=400)
canvas.pack()
background = PhotoImage(file="background.png")
canvas.create_image(350,200,image=background)
character = PhotoImage(file="hero.png")
canvas.create_image(30,30,image=character)
root.mainloop()
我要做的就是下载您提供的图像。我没有修改图像。因此,最重要的是,您只需要使用canvas小部件即可。
Voilà!
注意:询问的问题是How do I make Tkinter support PNG transparency?的重复