2012-09-25 18 views
0

我正在使用Canvas(和Python 2.7)來顯示以字節陣列(以PGM格式)存儲的圖像。在畫布中使用未保存的圖像

目前,我將它保存到磁盤,然後從文件中構建一個PhotoImage。

如何避免保存文件?我試圖用cStringIO做一個「字符串的文件」,然後使用encode64它傳遞給光象,問題是cStringIO.write不接受字節組:我有一個錯誤:

TypeError: must be string or pinned buffer, not bytearray 

如果可能的話,我想避免使用外部庫,例如PIL。

由於提前,

弗雷德

回答

0

從我看到的建議與PhotoImage是:

的光象也可以從字符串讀取的64位編碼的GIF文件。 可以使用此嵌入在Python源代碼圖像(BASE64模塊中使用的功能 將二進制數據轉換爲base64編碼串)

可以將字節數組轉換爲字符串:byteString = ''.join([ str(x) for x in bytes ]) 查看是否這工作。

Link to base64 module

+0

我沒有注意到PhotoImage只能使用GIF編碼的字符串。我認爲它可以用任何格式的PhotoImage作爲文件讀取。我想我不得不使用PIL。感謝您指出我的錯誤。 – Fred