【发布时间】:2013-03-26 00:33:44
【问题描述】:
当我加载透明图像时:
def load_image(path):
img = Image.open(path)
return ImageTk.PhotoImage(img)
class Home_Screen(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.home = Tk()
self.home.resizable(width = False,height = False)
self.home.geometry("700x500+300+100")
self.start()
def run(self):
self.images()
Label(self.home, image = self.background).pack() # Put it in the display window
button_instructions = Label(self.home,image = self.b_instructions).place(x = 300,y = 200)
self.home.mainloop()
def images(self):
self.background = load_image("Images/night-sky.jpg")
self.b_instructions = load_image("button_instructions.png")
def start_game(self):
self.home.destroy()
Home = Home_Screen()
我得到一个带有白色边框的图像。有谁知道为什么没有保留原来的透明度?如果可以,请提供解决方案。
【问题讨论】:
-
只是为了确定,您确定图像具有 Alpha 通道(如 PNG,而不是 JPEG)?
-
我确定我有一张透明的 .png 图像,我检查了几次
-
首先,您必须弄清楚在哪里失去了透明度。获取
img的模式以确保它具有alpha 通道,然后执行pixels=img.load()并确保某些像素实际上是透明的。尝试将img保存到一个新的PNG 文件,并确保它仍然是透明的。如果一切正常,那么问题是在PhotoImage中,或者在您显示它的方式上。但我敢打赌它不是。
标签: python image tkinter transparency python-imaging-library