3

ImageOps を使用して、アップロードされたアバター画像のサイズ変更と中央トリミングを行っています。問題は、既に目的のサイズの画像をアップロードしようとすると、アップロードされた画像がぼやけてしまうことです。

関連するコード:

avatar_size = (59,59)
#resized_im = im.resize(avatar_size, Image.ANTIALIAS)   #This works! But doesn't crop.
formatted_im = ImageOps.fit(im, avatar_size, Image.ANTIALIAS, centering=(0.5,0.5))     
formatted_im.save('foo.jpg', 'JPEG', quality=95)

そのため、59x59px の画像をアップロードすると、サーバーへのアップロード結果がぼやけます。グーグルで調べたり、ドキュメントを読んだり、実験したりしましたが、これを理解できません。助けてくれてありがとう。

4

1 に答える 1

7

おそらくアンチエイリアシングがぼやけの原因です。試してみてはどうですか:

avatar_size = (59,59)
method = Image.NEAREST if im.size == avatar_size else Image.ANTIALIAS
formatted_im = ImageOps.fit(im, avatar_size, method = method, centering = (0.5,0.5)) 
formatted_im.save('foo.jpg', 'JPEG', quality=95)
于 2012-11-03T19:50:17.220 に答える