📜  Python Pillow – 使用图像模块(1)

📅  最后修改于: 2023-12-03 14:46:02.470000             🧑  作者: Mango

Python Pillow - 使用图像模块

Pillow是Python Image Library(PIL)的一个分支,是Python中最常用的图像处理工具之一。它支持广泛的图像文件格式,并提供了各种强大的图像处理功能,如缩放、裁剪、滤波、旋转、转换颜色空间等。

安装Pillow

在使用Pillow之前,需要先安装它。可以使用以下命令在终端中安装Pillow:

pip install Pillow
加载和显示图像

加载图像是Pillow中的基本操作之一。可以使用以下代码在Python中加载图像:

from PIL import Image

# 打开图像文件
img = Image.open('image.jpg')

# 显示图像
img.show()

Pillow支持多种图像文件格式,如JPEG、PNG、BMP、GIF和TIFF等。可以通过文件名或文件对象来打开图像文件。

在Python中,Image对象是表示图像的常用类。可以使用Image类中的各种方法来处理图像。

调整图像大小

在Pillow中,可以使用resize()方法来调整图像的大小。以下代码演示了如何将图像调整为指定的大小:

from PIL import Image

# 打开图像文件
img = Image.open('image.jpg')

# 调整图像大小为300x300像素
img_resized = img.resize((300, 300))

# 显示调整后的图像
img_resized.show()

resize()方法接受一个元组参数,用于指定新图像的大小。

裁剪图像

在Pillow中,可以使用crop()方法来裁剪图像。以下代码演示了如何从图像左上角开始裁剪一个100x100像素的矩形区域:

from PIL import Image

# 打开图像文件
img = Image.open('image.jpg')

# 裁剪图像
img_cropped = img.crop((0, 0, 100, 100))

# 显示裁剪后的图像
img_cropped.show()

crop()方法接受一个元组参数,用于指定裁剪区域的左、上、右、下边界。

旋转图像

在Pillow中,可以使用rotate()方法来旋转图像。以下代码演示了如何将图像逆时针旋转45度:

from PIL import Image

# 打开图像文件
img = Image.open('image.jpg')

# 旋转图像
img_rotated = img.rotate(45)

# 显示旋转后的图像
img_rotated.show()

rotate()方法接受一个角度参数,用于指定旋转角度。

转换图像颜色空间

在Pillow中,可以使用convert()方法来转换图像的颜色空间。以下代码演示了如何将图像从RGB颜色空间转换为灰度颜色空间:

from PIL import Image

# 打开图像文件
img = Image.open('image.jpg')

# 转换图像颜色空间为灰度
img_gray = img.convert('L')

# 显示转换后的图像
img_gray.show()

convert()方法接受一个字符串参数,用于指定目标颜色空间。例如,'L'表示灰度颜色空间,'RGB'表示RGB颜色空间。

应用图像滤波器

在Pillow中,可以使用各种滤波器来处理图像。以下代码演示了如何将图像应用高斯模糊滤波器:

from PIL import Image, ImageFilter

# 打开图像文件
img = Image.open('image.jpg')

# 应用高斯模糊滤波器
img_blurred = img.filter(ImageFilter.GaussianBlur(5))

# 显示处理后的图像
img_blurred.show()

filter()方法接受一个滤波器对象作为参数,用于指定要应用的滤波器。可以使用ImageFilter类中的各种滤波器来创建滤波器对象。

这只是Pillow中可用的滤波器之一。还有许多其他滤波器,如锐化、边缘增强、浮雕等。

保存图像

处理完图像后,可以使用save()方法将其保存到磁盘上的文件中。以下代码演示了如何将图像保存为JPEG文件:

from PIL import Image

# 打开图像文件
img = Image.open('image.jpg')

# 处理图像...

# 保存图像为JPEG文件
img.save('image_processed.jpg', 'JPEG')

save()方法接受文件名和文件格式作为参数。可以使用各种图像文件格式(如JPEG、PNG、BMP和TIFF)保存图像。