Python Pillow专业指南:安装与基本使用

带着 Python 强大的 Pillow 库,踏上图像处理的精彩旅程吧!

什么是 Pillow?

Pillow 是一个 Python 库,以其打开、处理和保存多种图像文件格式而备受赞誉。

安装

我们首先要进行安装。

python
pip install pillow

想要了解更多安装选项,前往 Pillow 文档

基本用法

既然 Pillow 已经安装好了,现在是时候进入一些基本用法了。

打开和显示图像

python
from PIL import Image

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

基本图像处理

给我们的图像增加一点刺激。

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

# 转为灰度图
img_gray = img.convert('L')
img_gray.show()

保存图像

在我们完成基础操作后,让我们把修改后的图像保存起来。

python
img_rotated.save('rotated.jpg')
img_gray.save('gray.jpg')

深入探索

随着我们的深入探索,让我们了解更高级的功能。我们将探索图像滤镜、颜色调整,以及在图像上添加文本的操作。了解这些高级功能,将会让你的图像处理水平达到 Python Pillow 的下一个层次。

图像滤镜

Pillow 提供了大量的滤镜供你对图像进行处理。例如,我们来将 BLUR 滤镜应用于我们的图像。

python
from PIL import ImageFilter

# 应用 BLUR 滤镜
img_blur = img.filter(ImageFilter.BLUR)
img_blur.show()

调整颜色

你也可以调整图像的颜色。这里我们来增加图像的亮度。

python
from PIL import ImageEnhance

# 增加亮度
enhancer = ImageEnhance.Brightness(img)
img_bright = enhancer.enhance(2.0) # 增加亮度 2 倍
img_bright.show()

在图像上添加文本

只需要调用 text 函数,就能简单地在图像上添加文本。让我们来在图像上添加一些文本。

python
from PIL import ImageDraw, ImageFont

# 在图像上绘制文本
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('arial.ttf', 15) # 使用 Arial 字体,大小为 15

draw.text((10, 10), "Hello, Pillow!", font=font)
img.show()

结论

Pillow 是一个强大而多功能的 Python 图像处理库。它本质上是较旧的 PIL(Python Imaging Library)库的进化版本,提供广泛的文件格式支持、高效的内部表示以及强大的图像处理能力。从读取、写入、显示图像等简单任务,到图像滤镜、裁剪、调整大小、旋转和颜色处理等复杂操作,Pillow 都能应对自如。对于处理图像数据并需要以简单高效的方式进行转换和修改的 Python 程序员来说,Pillow 是必不可少的工具。

完整代码

python
from PIL import Image, ImageFilter, ImageEnhance, ImageDraw, ImageFont

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

# 旋转图像
img_rotated = img.rotate(45)
img_rotated.save('rotated.jpg')

# 转为灰度图
img_gray = img.convert('L')
img_gray.save('gray.jpg')

# 应用 BLUR 滤镜
img_blur = img.filter(ImageFilter.BLUR)
img_blur.show()

# 增加亮度
enhancer = ImageEnhance.Brightness(img)
img_bright = enhancer.enhance(2.0) # 增加亮度 2 倍
img_bright.show()

# 在图像上绘制文本

draw = ImageDraw.Draw(img)
font = ImageFont.truetype('arial.ttf', 15) # 使用 Arial 字体,大小为 15


draw.text((10, 10), "Hello, Pillow!", font=font)
img.show()

常见问题

1. 如果遇到 "No module named 'PIL'" 的错误怎么办? 确保 Pillow 安装正确。重新执行 pip install pillow 可能能解决问题。

2. 我可以在除了 .jpg 之外的文件格式中使用 Pillow 吗? 当然可以!Pillow 支持广泛的图像文件格式。

3. 如何调整图像的大小? 使用 resize() 函数即可。像这样使用:img_resized = img.resize((新宽度, 新高度))

4. 如果我想以不同的角度旋转图像怎么办? 只需在 rotate() 函数中更改数字。例如,img.rotate(90) 将图像旋转 90 度。

5. 在 convert 函数中,'L' 代表什么意思? 'L' 代表 'luminance'(亮度),这是一个复杂的术语,表示灰度或黑白。

© Copyright 2023 CLONE CODING