2010-07-17 262 views

回答

16

下面是一个例子(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() 

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

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

这应打印“RGBA”。如果没有,你必须确保alpha通道和图像一起保存。你必须咨询你的图形程序手册,了解如何做到这一点。

+9

我可能会注意到'ImageTk'不是Python标准库的一部分,而是Python成像库,它必须单独安装。另外,PIL还没有支持Python 3,所以上面的代码只能在Python 2.x上运行。 – fbmd 2013-02-12 08:40:50

+1

@fbmd:好评。这里有一个相关的帖子:http://stackoverflow.com/questions/3896286/image-library-for-python-3 – 2013-02-14 09:05:40

+0

如果你喜欢评论,你总是可以upvote。 ;-) – fbmd 2013-02-14 10:21:54