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 回答