欢迎访问宙启技术站
智能推送

使用Python的Pillow库编辑图像文件

发布时间:2023-06-23 10:06:38

Python的Pillow库是一个图像处理库,可以用于打开、编辑、保存图像文件。它是Python Imaging Library (PIL)的替代品,不仅提供了PIL的所有功能,还增加了一些新特性。在这个文章中,我们将使用Pillow库来展示如何处理图像文件。

首先,我们需要安装Pillow库。打开终端,输入以下命令即可安装:

pip install pillow

安装完成后,我们就可以开始处理图像文件了。

## 打开图像文件

使用Pillow库打开图像文件非常简单。我们只需要使用Image.open()方法来打开指定的图像文件:

from PIL import Image

img = Image.open('example.jpg')

这个代码片段将打开名为example.jpg的图像文件,并将其保存在img变量中。

## 显示图像文件

要显示图像文件,我们可以使用Image.show()方法:

img.show()

这个方法将显示图像文件(默认使用默认图像预览程序打开)

## 调整图像尺寸

我们可以使用Image.resize()方法调整图像的尺寸。这个方法接受一个包含宽度和高度的元组作为参数:

img_resized = img.resize((500, 500))
img_resized.show()

上面的代码执行resize()方法,将指定图像的宽度和高度都改为500像素,然后将新图像保存在img_resized变量中,并显示出来。

## 旋转图像

我们可以使用Image.rotate()方法旋转图像。这个方法接受一个角度为参数,并返回一个旋转后的图像:

img_rotated = img.rotate(90)
img_rotated.show()

这个代码将旋转指定图像90度,并将新图像保存在img_rotated变量中,并显示出来。

## 裁剪图像

使用Pillow库,可以很容易地裁剪图像。我们可以使用Image.crop()方法选择指定区域并返回一个新的图像对象:

box = (100, 100, 400, 400)
img_cropped = img.crop(box)
img_cropped.show()

上面的代码将从指定的图像中选择一个区域(左上角是(100, 100)像素,右下角是(400, 400)像素),并将新图像保存在img_cropped变量中,并显示出来。

## 调整图像亮度、对比度和色彩平衡

我们可以使用ImageEnhance模块中的类来处理图像的亮度、对比度和色彩平衡。例如,要提高图像的亮度:

from PIL import ImageEnhance

enhancer = ImageEnhance.Brightness(img)
img_brightened = enhancer.enhance(1.5)
img_brightened.show()

上面代码中,ImageEnhance.Brightness()方法创建一个Enhancer对象,并将这个对象传递给enhance()方法。这个方法需要一个数值参数,该数值为增加或减少的亮度。在这个示例中,我们将亮度增加到1.5倍。

## 添加水印

添加水印是一种很常见的图片编辑技术。我们可以使用Pillow库轻松地实现这一点。例如:

from PIL import ImageDraw, ImageFont

img_watermark = img.copy()
draw = ImageDraw.Draw(img_watermark)
font = ImageFont.truetype('arial.ttf', 36)
draw.text((10, 10), 'My Watermark', fill=(255, 255, 255), font=font)
img_watermark.show()

上面的代码创建了一个新的图像对象img_watermark,然后使用ImageDraw.Draw()方法创建了一个可用于绘制文本、矩形和其他图形的绘图上下文。我们使用ImageFont.truetype()方法指定字体和字体大小。最后,我们画了一个白色文本,放在左上角,然后将新图像保存在img_watermark变量中,并将其显示出来。

## 保存图像文件

我们可以使用Image.save()方法将图像保存到本地文件系统中:

img.save('new_image.jpg')

当我们调用save()方法并传递一个文件名作为参数时,Pillow库将保存我们处理过的图像文件。

这些方法只是Pillow库中可用于编辑图像的一部分功能。通过使用Pillow库的各种功能,我们可以修改图像的像素,颜色、对比度、大小和形状。Pillow库使用非常灵活,为开发人员提供了在进程内进行各种图像编辑任务的能力。