我正在使用Python 3.6和Pillow 4.0.0 我想從一個數組中創建一個PIL圖像,請參閱下面的簡化代碼,並且收到以下錯誤:AttributeError: 'array.array' object has no attribute '__array_interface__'
當調用Image.fromarray()
函數。Image.fromarray不能與array.array一起使用
爲什麼會發生這種情況? 當PIL文檔說: 從導出陣列接口的對象(使用緩衝區協議)創建圖像內存。 和array.array單證說: Array對象也實現了緩衝界面,並且可用於任何字節狀物體支持...
from PIL import Image
from array import array
arr = array('B', [100, 150, 200, 250])
im = Image.fromarray(arr)
im.show()
如果沒有別的,你可以說'Image.fromarray(np.asarray(arr))'。 –
PIL的fromarray()與支持[Buffer Protocol](https://docs.python.org/3/c-api/buffer.html)的對象一起工作。 'array.array'對象支持這個。數組接口是由'numpy'模塊定義的。 IMO PIL/pillow應該支持這兩種語言,尤其是Python定義和內置的標準語言。 – martineau