我想在python中創建一個漫畫存檔閱讀器,作爲練習來教會自己更多python,但是我一直有麻煩試圖從zip壓縮文件中讀取不同的圖像文件,而沒有提取文件,然後顯示它們。顯示從zip壓縮文件讀取的圖像python
我發現一個網站的例子(http://www.python-forum.org/pythonforum/viewtopic.php?f=4 &噸= 3607),只能顯示.gif圖像。該示例使用PhotoImage
(Tkinter版本不是PIL版本),它可以接受64位編碼字符串而不是實際文件。從我的大部分研究中看來,PIL是我想用來處理gif以外的圖像的,但我找不到像Tkinter.PhotoImage
類似的方式調用PIL.ImageTk.PhotoImage
的方法。採取一個數據流,而不是一個實際的文件。
有沒有什麼方法可以將從zipfile.read()
收到的數據傳遞給PIL.ImageTk.PhotoImage
?是否有另一個圖書館可以用來處理圖像? Tkinter不是我正在編寫的程序的要求,所以如果有更好的窗口小部件框架,我應該使用我不介意更改。
編輯: 所以我想通過PIL和tkinter做到這一點。
z = zipfile.ZipFile("zipfile.zip", "r")
data = z.read(z.namelist()[0]) #Read in the first image data
dataEnc = StringIO(data) #Encode the raw data to be used by Image.open()
img = Image.open(dataEnc) #Open the image
pimg = ImageTk.PhotoImage(img) #Make tk compatible image
可能是一個很好的時間打出來['StringIO'(http://docs.python.org/library/stringio.html)進行一些測試。 – sarnold