如何让Tkinter支持PNG透明度?

时间:2010-07-17 04:05:23

标签: python png transparency tkinter

我在Tkinter中放入了部分透明的PNG图像,我得到的就是这个

alt text http://i26.tinypic.com/aelh82.jpg

如何使右侧的黑色三角形清晰? (就像它应该的那样)

这是Windows 7上的python 2.6,顺便说一句。

1 个答案:

答案 0 :(得分:17)

这是一个例子(PNG文件example.png在不同的地方有很多透明度):

from Tkinter import Tk, Frame, Canvas
import ImageTk

t = Tk()
t.title("Transparency")

frame = Frame(t)
frame.pack()

canvas = Canvas(frame, bg="black", width=500, height=500)
canvas.pack()

photoimage = ImageTk.PhotoImage(file="example.png")
canvas.create_image(150, 150, image=photoimage)

t.mainloop()

您需要确保图像已存储为带有Alpha通道的RGBA - RGB。您可以使用您选择的图形程序或使用PIL(Python Imaging Library)来检查:

import Image
im = Image.open("button.png")
print im.mode

这应该打印“RGBA”。如果没有,您必须确保Alpha通道与图像一起保存。您必须查阅图形程序手册以了解如何操作。