Pillow是一个第三方库,支持各种图像文件格式,如JPEG、PNG、PPM、GIF、BMP和TIFF。Pillow库支持调整大小、裁剪、为图像添加文本、旋转和灰度等操作。
如何在Python中裁剪图像
要 在Python中 裁剪 图像 ,请使用pillow库的**Image.crop()**方法。当图像被裁剪时,图像内的一个矩形区域被选中并保留,而该区域外的其他一切都被移除。
使用Pillow库,你可以用Image类的crop()方法裁剪图像。
Image.crop(box=None)
box:裁剪的矩形区域,是一个(左、上、右、下)元组。
Image.crop()方法从提供的图像中返回一个矩形区域。盒子是一个四元组,定义了左、上、右、下像素坐标。
在Python中裁剪图像的步骤
要在Python中裁剪图像,你可以使用Pillow成像库,并遵循以下步骤:
安装Pillow。
从PIL导入图像类并打开图像。
使用crop()方法裁剪图像。
第1步:安装Pillow
在安装Pillow库之前,必须满足一些先决条件。这些对于不同的操作系统是不同的。
我们不会在这里列出不同的选项,你可以在这个安装指南中找到你的特定操作系统的前提条件。
在安装完所需的库后,你可以用pip
来安装Pillow。
键入以下命令:
python3 -m pip install pillow
pip install pillow
PIL是Python成像库,它提供了一个具有图像编辑功能的Python解释器。
Image模块提供了用于表示PIL图像的同名类。该模块还提供了几个工厂功能,包括从文件中加载图像和创建新图像。
第2步:导入PIL并打开图像
要从PIL导入图像类,请使用以下代码:
from PIL import Image
在Python图像库中的一个重要类是Image类。
它被定义在图像模块下,支持一个可以进行编辑操作的PIL图像。 图像类的一个实例(对象)可以通过以下方式之一创建:
通过从文件中加载图像。
从头开始创建图像。
作为处理其他图像的结果。
为了从文件系统中加载图像,我们使用图像模块的open()方法,并传递图像的路径。
请看下面的代码:
from PIL import Image
try:
imgPath = './forest.jpg'
img = Image.open(imgPath)
img.show()
except FileNotFoundError:
print('Provided image path is not found')
获得图像对象后,你现在可以使用该类定义的方法和属性来处理和操作它。
你可以通过对获得的对象调用show()方法来显示图像。show()方法在外部查看器上显示图像。例如,在macOS上,它是在预览软件上打开。
如果我们提供的路径不正确,那么它将抛出FileNotFoundError异常。我们已经在我们的代码中通过在控制台中打印消息来处理这个异常。
现在,我们将使用crop()函数来裁剪这个图像。
第3步:使用crop()方法裁剪图像
当图像被裁剪时,图像内的一个矩形区域被选中并保留,而区域外的其他东西都被删除。
通过Pillow库,你可以用图像类的crop()方法裁剪图像。该方法以盒状元为参数,定义了裁剪区域的位置和大小,并返回代表裁剪后图像的Image对象。
Python图像库使用以左上角的(0, 0)开始的坐标系。箱子元组的前两个值定义了裁剪箱的左上角起始位置。
第三和第四个值分别定义了从这个起始位置向右和底部方向的像素距离。
右边也可以表示为(左+宽),而下面可以描述为(上+高)。
图像模块的裁剪方法需要四个坐标作为输入。框的坐标是(左、上、右、下)。
裁剪的部分由左列和上行的像素组成,并上升到(但不包括)右列和下行的像素。用上面的例子可以更好地解释这一点。让我们看一个图片的例子。
在这个例子中,我的图像有点大,但你的图像可能很小。所以要根据你的图像大小和裁剪的要求来写坐标。
请看下面的代码:
from PIL import Image
imgPath = './forest.jpg'
img = Image.open(imgPath)
img.show()
# Crop the image using crop() method
box = (2000, 2500, 4000, 4000)
croppedImage = img.crop(box)
croppedImage.save('cropped_image.jpg')
croppedImage.show()
except FileNotFoundError:
print('Provided image path is not found')
这张图片是从原始图片中裁剪出来的部分。
在这个例子中,我写了,box = (2000, 2500, 4000, 4000)。
这意味着,(左、上、右、下)=(2000,2500,4000,4000)。
因此,根据上述坐标,它将裁剪图像。
在这个例子中,我们已经看到了以下几点:
安装Pillow,从PIL模块中导入Image模块。
然后我们看到了图像对象和属性。
接下来,我们看到了如何使用crop()函数来裁剪图像。
就这样了。