Odi*_*aeb 31 python resize python-imaging-library
我有一些奇怪的问题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')
Run Code Online (Sandbox Code Playgroud)
此代码运行时没有任何错误,并生成mugshotv2.jpg在正确的文件夹中命名的图像,但它不会调整它的大小.它做了一些事情,因为图片的大小从120 kb下降到20 kb,但尺寸保持不变.
也许你也可以建议用更少的代码将图像裁剪成正方形.我有点想到这样Image.thumbnail做,但它做的是它将我的图像按宽度缩放到150像素,高度为100像素.
Nad*_*mli 87
resize()返回图像的已调整大小的副本.它不会修改原件.使用它的正确方法是:
from PIL import Image
#...
img = img.resize((150, newheight), Image.ANTIALIAS)
Run Code Online (Sandbox Code Playgroud)
我认为您正在寻找的是ImageOps.fit功能.来自PIL 文档:
ImageOps.fit(图像,大小,方法,出血,居中)=>图像
返回图像的大小和裁剪版本,裁剪为请求的宽高比和大小.size参数是请求的输出大小(以像素为单位),以(宽度,高度)元组的形式给出.