Pillow
Pillowは、Pythonの画像処理ライブラリです。
サムネイル画像作成など、画像を拡大・縮小する時に使われるメソッドを比較します。
resize
Image.resize(size, resample=3, box=None, reducing_gap=None)
サイズを変更したコピーを返す
Parameters
- size: 変更したいサイズ (width, height)
- resample: リサンプリングフィルタ (デフォルトは PIL.Image.BICUBIC)
- PIL.Image.NEAREST
- PIL.Image.BOX
- PIL.Image.BILINEAR
- PIL.Image.HAMMING
- PIL.Image.BICUBIC
- PIL.Image.LANCZOS
- box: リサイズする画像の領域。長方形の領域のみ指定できる
未指定の場合、画像全体- 例: box=(100, 100, 300, 300)
- reduce_gap: 段階的に画像サイズの変更、最適化をさせる (デフォルト: 2.0)
戻り値
Image object
thumbnail
Image.thumbnail(size, resample=3, reducing_gap=2.0)
アスペクト比を維持しながら、指定したサイズ以下の画像に縮小させる
- 例: 550x550の正方形画像に(600, 400)を指定した場合、400x400 となる
Parameters
- size: 指定したsize以下に縮小する (width, height)
- resample: リサンプリングフィルタ (デフォルトは PIL.Image.BICUBIC)
- PIL.Image.NEAREST
- PIL.Image.BOX
- PIL.Image.BILINEAR
- PIL.Image.HAMMING
- PIL.Image.BICUBIC
- PIL.Image.LANCZOS
- reduce_gap: 段階的に画像サイズの変更、最適化をさせる (デフォルト: 2.0)
戻り値
なし(破滅的なメソッド)
比較
resize
im = Image.open("test.png")
im_resized = im.resize(size=(150, 150))
im_resized.save('output.png')
thumbnail
im = Image.open("test.png")
im.thumbnail(size=(150, 150))
im.save('output2.png')
size指定が大きい時
300x200 の画像を size=(400x500)
を指定してみる
resize
im_resized = im.resize(size=(400, 500))
thumbnail
im.thumbnail(size=(400, 500))
参考
公式ドキュメント: https://pillow.readthedocs.io/en/stable/index.html