2010-07-17 175 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