画像処理 (Pillow / PIL) | Python-izm

画像処理 (Pillow / PIL)

Pythonでの画像処理PIL(Python Imaging Library)がポピュラーです。ただしPIL自身はPython 3系には対応しておらず、後継のPillowがそれに対応しているため、そちらを選択するとよいでしょう。

Pillowのインストール

下記コマンドを入力しPillowをインストールしてください。
※これはpipがインストールされていることを前提としています。インストールしていない場合はpipの使い方とインストールを参照してください。

pip install pillow

イメージファイル情報の取得

例で使用するイメージファイルは、本サイトのロゴを使用しています。

from PIL import Image

img = Image.open('./logo.jpg')

print(img.format)
print(img.size)
print(img.mode)
JPEG
(250, 50)
RGB

3行目で指定の画像ファイルを開き 5、6、7行目でそれぞれ画像フォーマット画像サイズ画像モードを取得・表示しています。画像モードはトゥルーカラーの場合はRGB、グレースケールの場合はLなどが入ります。

画像フォーマットの変換

画像ファイルのフォーマットを指定の形式に変換する方法です。

from PIL import Image

img = Image.open('./logo.jpg')

img.save('./copy.jpg')
img.save('./logo.bmp', 'bmp')
img.save('./logo.gif', 'gif')

実行後、作業ディレクトリへ以下のファイルが保存されます。

  • copy.jpg – 元ファイルlogo.jpgを別名保存(コピー)
  • logo.bmp – 元ファイルlogo.jpgからBMPへ変換して保存
  • logo.gif – 元ファイルlogo.jpgからGIFへ変換して保存

イメージファイルの加工

次の例は画像の反転などを行う方法です。

from PIL import Image

img = Image.open('./logo.jpg')

left_right_image = img.transpose(Image.FLIP_LEFT_RIGHT)
left_right_image.save('./logo_left_right.jpg')

top_buttom_image = img.transpose(Image.FLIP_TOP_BOTTOM)
top_buttom_image.save('./logo_top_bottom.jpg')

img.thumbnail((125, 25))
img.save('./logo_thum.jpg')

実行後、作業ディレクトリへ以下のファイルが保存されます。

logo_left_right.jpg – 元ファイルlogo.jpgを左右反転保存

logo_top_bottom.jpg – 元ファイルlogo.jpgを上下反転保存

logo_thum.jpg – 元ファイルlogo.jpgからサムネイル画像を生成