2012-06-17 48 views
2

我正在開發一個Tkinter應用程序,它使用圖標的png圖像文件數據庫。爲了在應用程序中使用這些圖像,我使用PIL的Image.open打開它們,通過ImageTk.PhotoImage函數運行它,然後將它傳遞給窗口構件。在Python 3.x中等價於PIL ImageTk

問題是,我試圖將我的整個項目移植到Python 3.x,並且由於PIL缺少對Python 3的支持,我不知道如何將圖標加載到應用程序中。

如果有人知道一個解決方案,可以讓我使用這些圖標而無需將它們全部轉換爲.gif位圖,我將非常感激!

回答

0

您可以使用Pillow與Python 3.3或更早版本的png圖像一起使用。

here摘自:

枕頭> = 2.0.0支持Python版本:2.6,2.7,3.2,3.3。枕頭< 2.0.0支持Python版本:2.4,2.5,2.6,2.7。

4

PNG文件,甚至與透明度,正確地在Linux上顯示的Tkinter和TTK在Python 3.4.1,即使只有GIF和PPM/PGM支持documented

Example PNG File With Transparency And Alpha

以上PNG圖像包含透明度。

from tkinter import *   

root = Tk()      

photo = PhotoImage(file="example.png") 
photo_label = Label(image=photo) 
photo_label.grid()    
photo_label.image = photo  

text = Label(text="Text") # included to show background color 
text.grid()  

root.mainloop() 

上面的代碼與透明度準確呈現圖像所見如下:

PNG Test Image In Python 3.4.1 tkinter with text

請注意,畫面是在設定中沒有窗戶的裝飾和深色GUI顏色方案。