Library)からフォークされた画像処理ライブラリ。documentationOpenCVのようにコンピュータービジョン系の高度な画像処理(顔検出とかオプティカルフローとか)はできないが、リサイズ(拡大・縮小)や回転、トリミング(部分切り出し)のような単純な処理はバッチリ。PillowのほうがOpenCVよりコードがシンプルでとっつきやすいので、目的によって使い分けるのがいいだろう。OpenCVの違いと使い分けここでは以下の内容について述べる。そのほかの処理例リサイズやトリミングなど個々の処理について説明した個別記事は以下から。Pillowに関する記事一覧スポンサーリンクインストールpip(環境によってはpip3)でインストールできる。PillowPillowとPILは共存出来ない。両方インストールしてしまった場合は、まず両方ともアンインストールしてから片方だけをインストールし直せばよい。listで確認できる。公式ドキュメントがしっかりしていて分かりやすい。画像ファイルを読み込み。インストールするのはPillowだがインポートするパッケージの名前はPillowではなくPILなので注意。pillow_image.pyフォーマット、サイズ(幅、高さ)、モードなどのメタ情報を取得。pillow_image.pyRGB各色の最小値と最大値を取得。pillow_image.py指定した座標の色を取得。B)のタプルが返される。pillow_image.py画像を処理する例として、白黒変換(convert('L'))、90度回転(rotate(90))、ガウシアンブラー(filter())を行う。pillow_image.pyOSデフォルトのソフトで画像を表示。Macの場合は「プレビュー.app」が起動し画像が表示される。pillow_image.py画像を保存。pillow_image.py保存されるファイルのフォーマットはsave()の引数に指定したパスの拡張子から自動的に判定される。save()ではフォーマットに応じたパラメータを引数で指定できる。jpgの場合は引数qualityで品質を指定できる。1から100までで、デフォルトは75。値が大きいほうが品質が良い(その分ファイルサイズも大きい)が、以下の公式ドキュメントにあるように、95より大きい値は推奨されていない。劣化を防ぎたい場合は可逆圧縮のpngなどで保存すればよい。バージョン6.2時点では0以下の値だとデフォルト(75)、101以上の値だと100として処理される模様。documentationフォーマットごとの詳細は公式ドキュメントを参照。documentation元画像と処理後の画像は以下の通り。ImageDrawモジュールを使う。documentation詳細は以下の記事も参照。Pillowで円や四角、直線などの図形を描画Image.new()でベタ画像のImageオブジェクトを作成。第二引数にサイズ、第三引数にRGBの各色を指定する。pillow_image_draw.pyImageオブジェクトを引数に指定してDrawオブジェクトを生成。pillow_image_draw.pyテキストを描画。フォントを指定して使う。pillow_image_draw.py上述のように、画面に表示させたい場合はshow()、画像ファイルとして保存したい場合はsave()を使う。いずれもDrawオブジェクトではなくImageオブジェクトのメソッドなので注意。pillow_image_draw.py以下のような画像が生成される。この例では最初にベタ画像を生成しているが、画像ファイルを読み込んで、その上に図形やテキスト描画することも可能。そのほかの処理例Pillow(PIL)を使った画像処理の例をいくつか挙げる。詳細やサンプルコードはリンク先の個別記事を参照。画像に別の画像を貼り付け背景画像に別の画像を貼り付ける。矩形のほか、マスク画像を使って円形など任意の形に切り抜いて貼り付けたりもできる。Pillowで画像に別の画像を貼り付けるpaste2枚の画像を合成2枚の同じサイズの画像を合成する。マスク画像を使って任意の図形に切り抜いて合成したり、グラデーション画像をマスクとして徐々に変化する画像を作成したりできる。複数の画像を連結(結合)複数枚の画像を縦や横に並べて連結画像を作成する。Pillowで画像を縦・横に連結(結合)透過png画像を作成アルファチャンネルを持つ透過png画像を作成する。これも任意の形にマスクすることができる。Pillowで透過png画像を作成するputalphaネガポジ反転(画素値を逆転)ネガポジ反転した画像(画素値が逆転した画像)を生成する。大きい画像からサムネイル画像を作成する。中央を切り抜いたり、余白を付け加えて任意のサイズにしたり、円形にしたりできる。複数の画像を一括で処理することも可能。Pillowで正方形・円形のサムネイル画像を一括作成アニメーションgifを作成jpgやpngだけでなく、アニメーションgif画像を作成することもできる。