详解在Python中使用图像数据类型的pillow

  • Post category:Python

Pillow是一个用于Python的图像处理模块,支持多种图像格式的读取和写入,并提供丰富的图像处理工具。下面是使用Pillow进行图像处理的完整攻略。

安装

首先需要安装Pillow模块,可以使用pip进行安装:

pip install pillow

读取图像

在Pillow中,可以使用Image对象表示一个图像,用open()函数读取图像文件并返回一个Image对象:

from PIL import Image

# 打开图像文件并返回Image对象
img = Image.open('test.jpg')

# 显示图像大小和格式
print(img.size, img.mode)

输出结果类似于:

(1280, 800) RGB

处理图像

可以使用Image对象提供的方法对图像进行处理,例如调整大小、旋转、转换格式等等。下面是一些示例。

调整大小

Image对象中的resize()方法可以调整图像的大小,并返回一个新的Image对象:

# 调整图像大小为宽度为600,高度按比例缩放
new_img = img.resize((600, int(600 * img.size[1] / img.size[0])))

# 显示新图像大小和格式
print(new_img.size, new_img.mode)

# 保存新图像文件
new_img.save('new.jpg')

旋转

Image对象中的rotate()方法可以对图像进行旋转,角度为正表示逆时针旋转,角度为负表示顺时针旋转:

# 将图像逆时针旋转90度
rotated_img = img.rotate(90)

# 保存旋转后的图像文件
rotated_img.save('rotated.jpg')

转换格式

Image对象中的convert()方法可以将图像文件的格式转换为其他格式:

# 转换图像文件格式为PNG
png_img = img.convert('PNG')

# 保存PNG格式的图像文件
png_img.save('new.png')

其他操作

除了上文提到的一些基本操作,Pillow还提供了一些高级的图像处理工具,例如图像滤镜、添加水印等等。这里不一一赘述,有兴趣的读者可以查阅Pillow的官方文档。

示例

下面是一个示例程序,读取一张图像文件并将其转换为灰度图像:

from PIL import Image

# 打开图像文件并返回Image对象
img = Image.open('test.jpg')

# 将图像转换为灰度图像
gray_img = img.convert('L')

# 显示新图像大小和格式
print(gray_img.size, gray_img.mode)

# 保存灰度图像文件
gray_img.save('gray.jpg')

输出结果类似于:

(1280, 800) L

下面是另一个示例程序,读取一张图像文件并将其模糊处理:

from PIL import Image, ImageFilter

# 打开图像文件并返回Image对象
img = Image.open('test.jpg')

# 使用高斯模糊滤镜对图像进行模糊处理
blur_img = img.filter(ImageFilter.GaussianBlur(10))

# 显示新图像大小和格式
print(blur_img.size, blur_img.mode)

# 保存模糊处理后的图像文件
blur_img.save('blur.jpg')

输出结果类似于:

(1280, 800) RGB

结语

Pillow是一个十分强大的Python图像处理模块,具有丰富的功能和易于使用的接口。通过熟练掌握Pillow的使用,可以实现各种各样的图像处理任务。