読者です 読者をやめる 読者になる 読者になる

PIL.Imageのthumbnailメソッド

Python

 PILでサムネールをつくると何だか綺麗にできないような気がずっとしていて、ようやくthumbnailメソッドのオプションを比較してみました。
 一応、PIL.Imageでサムネールを作る例を書いておくと、こんな感じ。

from PIL import Image

img = Image.open(file('original.jpg'))

for filter in ('NEAREST', 'BILINEAR', 'BICUBIC', 'ANTIALIAS'):
    t = img.copy()
    t.thumbnail((120, 160), getattr(Image, filter))
    t.save('%s.jpg' % filter)

 Image.openでイメージオブジェクトを作り、(幅、高さ)のシーケンスと、オプション引数filterを渡してthumbnailメソッドを呼ぶ。注意すべきは、thumbnailメソッドは、自分自身を書き換えるので、必要ならば、copy()メソッドでコピーを作っておくこと。


 結果は、次のようになりました。上から順に、NEAREST(デフォルト), BILINEAR, BICUBIC, ANTIALIAS(最高画質)です。




 今必要としているのが、もっと小さいサイズのサムネールなので、幅80pxでもやってみました。




 NEARESTとANTIALIASの差はかなり目立ちますね。これからは、基本ANTIALIASで考えよう。