Pillow:Python图像处理库详解
Pillow(之前称为PIL,Python Imaging Library)是一个开源的Python图像处理库,它提供了广泛的文件格式支持、强大的图像处理能力和易于使用的API。Pillow可以处理几乎所有类型的图像文件,并且可以进行复杂的图像操作,如旋转、缩放、颜色转换等。
Pillow的主要特点
- 广泛的文件格式支持:支持打开、保存和操作多种图像文件格式。
- 图像处理能力:提供图像过滤、颜色转换、几何变换等功能。
- 易于使用的API:提供了简单直观的API来处理图像。
- 图像过滤:包括模糊、锐化、边缘检测等多种滤镜效果。
- 图像绘制:可以在图像上绘制文本、线条、形状等。
常用Pillow函数及其参数
Image.open()
打开图像文件并返回一个Image
对象。
filename
: 图像文件的路径。
Image.new()
创建一个新的图像。
mode
: 图像模式,如'RGB'
、'L'
等。size
: 图像的尺寸,格式为(width, height)
。
Image.save()
保存图像到文件。
filename
: 保存的文件路径。format
: 文件格式。
Image.resize()
调整图像的大小。
size
: 新的图像尺寸。resample
: 重采样过滤器。
Image.crop()
裁剪图像。
bbox
: 裁剪区域的边界框。
Image.rotate()
旋转图像。
angle
: 旋转角度。resample
: 重采样过滤器。
Image.transpose()
转换图像。
method
: 转换方法,如Image.FLIP_LEFT_RIGHT
。
Image.filter()
应用滤镜效果。
filter
: 滤镜对象。
ImageDraw.Draw()
在图像上进行绘制。
image
: 要绘制的图像对象。
ImageFont.truetype()
加载TrueType或OpenType字体文件。
font
: 字体文件的路径。size
: 字体大小。
示例
以下是一个使用Pillow进行图像处理的示例:
from PIL import Image, ImageDraw, ImageFont
# 打开图像
image = Image.open('input.jpg')
# 创建一个新的图像
new_image = Image.new('RGB', (200, 200), 'white')
# 将原始图像粘贴到新图像上
new_image.paste(image, (50, 50))
# 旋转图像
rotated_image = new_image.rotate(45, expand=True)
# 绘制文本
draw = ImageDraw.Draw(rotated_image)
font = ImageFont.truetype('arial.ttf', 15)
draw.text((10, 10), 'Hello, Pillow!', font=font, fill='black')
# 保存图像
rotated_image.save('output.jpg')
在这个示例中,我们首先打开了一个图像文件,然后创建了一个新的白色图像。我们将原始图像粘贴到新图像上,然后旋转了新图像。最后,我们在图像上绘制了文本,并保存了最终的图像。