Acr*_*ozo 3 python image tkinter python-imaging-library
所以我有 2 张图像,其中 1 张图像应该是背景,另外 1 张只是角色图像。我可以将一张图像放在另一张图像上,但该图像具有白色边框,即使它是 PNG 文件。
这是两个单独的图像: https://i.stack.imgur.com/DX7N6.jpg 抱歉,我没有直接发布图像,但我不能,因为我没有 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()
Run Code Online (Sandbox Code Playgroud)
您只需要使用canvasTkinter 中的小部件即可。只有画布小部件支持透明度。这与 Tkinter 绘制显示的方式有关。截至目前,您的代码只是叠加两个图像。除非您使用画布小部件,否则 Tkinter 不知道如何以透明度组合它们。
请看下面的代码:
\n\nfrom tkinter import *\nfrom PIL import Image\n\n\nroot = Tk()\nroot.title("Game")\n\n\nframe = Frame(root)\nframe.pack()\n\n\ncanvas = Canvas(frame, bg="black", width=700, height=400)\ncanvas.pack()\n\n\nbackground = PhotoImage(file="background.png")\ncanvas.create_image(350,200,image=background)\n\ncharacter = PhotoImage(file="hero.png")\ncanvas.create_image(30,30,image=character)\n\nroot.mainloop()\nRun Code Online (Sandbox Code Playgroud)\n\n我所做的就是下载您提供的图像。我没有修改图像。因此,底线是您只需要使用画布小部件。
\n\n\n\n瞧\xc3\xa0!
\n\n注意:提出的问题与如何使 Tkinter 支持 PNG 透明度?
\n