Python 中的 Pillow 包
我们可以使用 Python 中的不同库来读取、处理和显示图像。在 2011 年弃用之前,我们拥有标准图像处理库 PIL(Python Imaging Library)包。
过了一段时间,引入了一个 Pillow 项目,它是原始 PIL 包的一个分支。该库包括对所有新图像格式的支持,并添加了新的解码器来处理这些新格式。
我们通过执行 pip install pillow
命令来安装这个库。
本教程将演示 Python 中 Pillow 库的基础知识。
在 Python 中使用 Pillow 包读取和显示图像
我们可以使用 open()
函数打开图像并将其存储在 PIL 类对象中。我们指定文件的路径并将其与 PIL.Image
对象一起使用。
使用 show()
函数,我们可以在 PIL.Image
对象中显示图像。在此之后,图像将存储在缓冲区中并转换为 PNG 格式以显示它。
请参阅下面的代码。
from PIL import Image
i = Image.open("image.png")
i.show()
输出:
在上面的示例中,我们使用 open()
函数读取图像并使用 show()
函数显示它。
Python 中使用 Pillow 包获取图片的属性
我们还可以使用 PIL.Image
对象获取不同的图像属性。
mode 属性说明由像素确定的加载图像的深度和类型。模式可以是 L(灰度)、P(映射到其他模式)、RGB 等。
例子:
from PIL import Image
i = Image.open("image.png")
print(i.mode)
输出:
RGBA
我们可以使用 convert()
函数将图像转换为不同的模式并指定其中的模式。
我们还可以分别使用 size
和 format
属性找到图像的大小和格式。
请参阅下面的代码。
from PIL import Image
i = Image.open("image.png")
print(i.size, i.format)
输出:
(640, 640) PNG
在 Python 中使用 Pillow 包编辑和处理图像
我们还可以使用 Pillow 包处理图像并对其进行编辑。它有一个名为 PIL.ImageFilter
的模块,用于存储不同的过滤器。
我们可以使用 filter()
函数将它们应用于图像,并在其中指定过滤器。
例子:
from PIL import Image, ImageFilter
i = Image.open("image.png")
edited = i.filter(ImageFilter.BLUR)
edited.show()
输出:
在上面的示例中,我们使用 filter()
函数中的 ImageFilter.BLUR
对图像进行模糊处理。
此外,这个包的 crop()
函数可以将图像裁剪到给定的尺寸。rotate()
函数可以将图像旋转给定的角度。
请参阅下面的代码。
from PIL import Image, ImageFilter
i = Image.open("image.png")
t = i.crop((100, 100, 350, 350))
edited = t.rotate(90)
edited.show()
输出:
我们提到了裁剪图像的尺寸并将其旋转给定角度。
此外,save()
函数可以保存编辑后的图像。
我们在函数中提到了图像的路径和文件名。我们还应该在文件名中指定图像的格式。
例子:
from PIL import Image, ImageFilter
i = Image.open("image.png")
t = i.crop((100, 100, 350, 350))
edited = t.rotate(90)
edited.save("edited.png")
结论
最后,我们讨论了 Pillow 包的不同用途、它的历史、它是如何在 PIL 包之后出现的,以及在读取和处理图像中的一些主要用途。
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn