如何在 Python PIL 中将图像调整到特定大小而不失真?

How to resize images to certain size in Python PIL without distortion?

我正在尝试在 Python 中使用 PIL 将图像裁剪到 1000、1000。

但是,它总是拉伸图像以匹配尺寸而不是裁剪。当前代码如下。

最好是将原始图片左右均匀裁剪,同时将高度扩展或减小到1000。

from PIL import Image
img = Image.open('image.jpg')
new_img = img.resize((1000,1000))
new_img.save("image.jpg", "JPEG", optimize=True)
new_img.show()

您可以使用 image.crop 方法裁剪边,然后使用 image.resize 将高度扩展或减小到 1000:

(width, height) = img.size
left = int((width - 1000)/2)
right = left + 1000
new_img = img.crop((left, 0, right, height))
new_img = new_img.resize((1000,1000))

在python中你可以在你想要导入PILL模块的地方使用带有PILL库的resize image

from PIL import Image
im = Image.open("images/cat.jpg")
im.show()
resized_im = im.resize((round(im.size[0]*0.5), round(im.size[1]*0.5)))
resized_im.show()
resized_im.save('resizedBeach1.jpg')