我在 PIL 不调整图像大小时遇到了一些奇怪的问题。
from PIL import Image
img = Image.open('foo.jpg')
width, height = img.size
ratio = floor(height / width)
newheight = ratio * 150
img.resize((150, newheight), Image.ANTIALIAS)
img.save('mugshotv2.jpg', format='JPEG')
此代码运行时没有任何错误,并在正确的文件夹中生成名为 mugshotv2.jpg
的图像,但它不会调整大小。它做了一些事情,因为图片的大小从 120 kb 下降到 20 kb,但尺寸保持不变。
也许您还可以建议用更少的代码将图像裁剪成正方形的方法。我有点认为 Image.thumbnail
做到了,但它所做的是将我的图像按宽度缩放到 150 像素,高度为 100 像素。
原文由 Odif Yltsaeb 发布,翻译遵循 CC BY-SA 4.0 许可协议
resize()
返回图像的调整大小副本。它不会修改原始文件。正确的使用方法是:资源
我认为您正在寻找的是 ImageOps.fit 函数。来自 PIL 文档: