私はPython 3.6とPillow 4.0.0を使用しています 配列の値からPILイメージを作成しようとしています。以下の単純化されたコードを参照してください。 :Image.fromarray()
機能を呼び出すときAttributeError: 'array.array' object has no attribute '__array_interface__'
。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