我正在使用 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 图像时,服务器上上传的结果是模糊的。尝试使用谷歌搜索、阅读文档和进行实验,但无法弄清楚这一点。谢谢您的帮助。

最佳答案

可能是抗锯齿导致了模糊。
试试怎么样:

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)

关于python - ImageOps.fit 模糊了我的形象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13212762/

10-12 16:54