42

PIL(およびこの質問に関連する)を見ると、画像モードの包括的なリストはどこで入手できますか?「RGB」、「RGBX」が表示されます。表示されるPILドキュメントには記載されていませんが、コードに「BGRX」が含まれています。たとえば、Windows API呼び出しを操作するときに、どれがどれで、どのPILがサポートし、どの適切なモードを選択するかを確認するにはどうすればよいですか?

基本的に私は画像モードについてほとんど知らないので、魔法のように機能させるためにどの文字を入れるかだけではなく、もっと学びたいと思っています。

4

1 に答える 1

31

Pillowには、紛らわしいほど似た名前の2つの異なる概念があります。

「モード」

これらはhttps://pillow.readthedocs.io/en/latest/handbook/concepts.html#modesにリストされています。

それらのドキュメントによると:

画像のモードは、画像内のピクセルのタイプと深さを定義します。

Imageこの種の「モード」は、 's.mode属性を介して公開され、.convert()メソッドを介して変更でき、パラメーターを受け取るメソッドに渡すことができmodeます。それらは「rawモード」と同じではありません。

「生モード」

これらは、画像ファイルからの非圧縮データをPILオブジェクトが理解できる形式に変換するrawデコーダーによって内部的に使用されます。Image「モード」の数倍の「生モード」があり、画像内のピクセルのタイプ(カラーまたはグレースケール)とビット深度だけでなく、ファイル内のレイアウトに関する情報も伝達します。たとえば、rawモードは、 「24ビットのトゥルーカラー、ラインインターリーブ(最初はすべて赤のピクセル、次にすべての緑のピクセル、最後にすべての青のピクセル)」RGB;Lを意味するものとして文書化されています。

上記のリンクされたドキュメント(および古いPILドキュメント)に記載されているように、rawモードのリストはにありますUnpack.c。ファイルの終わり近くにリストがあります。

Unpack.cPillowの現在のマスターブランチから:https ://github.com/python-pillow/Pillow/blob/master/src/libImaging/Unpack.c

Unpack.cPILの最終リリースから:http ://svn.effbot.org/public/tags/pil-1.1.7/libImaging/Unpack.c

于 2010-11-16T22:36:17.583 に答える