Python Pillow - 处理图像


本章详细介绍的主题包括如何在 Pillow 中读取和保存图像。

读取图像

使用pillow库读写图像非常简单,借助PIL.Image模块函数

句法

Image.open(fp, mode=’r’)

在哪里

  • fp - 文件名(字符串)、pathlib.Path 对象或文件对象。文件对象必须实现 read()、seek() 和tell() 方法,并以二进制模式打开。

  • mode - 这是一个可选参数,如果给出,则必须是“r”。

  • 返回值- 图像对象。

  • 错误- 如果找不到文件,或者无法打开和识别图像。

例子

以下是一个非常简单的示例,我们将打开任何格式的图像(我们使用 .jpg ,将其显示在窗口中,然后使用另一种文件格式(.png )保存它(默认位置

from PIL import Image
image = Image.open('beach1.jpg')
image.show()
image.save('beach1.bmp')
image1 = Image.open('beach1.bmp')
image1.show()

在上面的示例中,我们从 PIL 库导入 Image 模块,然后调用 Image.open ()函数从磁盘读取图像,该函数返回图像对象数据类型。它会通过查看文件内容自动确定文件类型。对于读取,open()函数接受文件名(字符串)路径对象图像(文件)对象。

因此,通过使用 open() 函数,我们实际上是在读取图像。Image.open() 将读取图像并从图像中获取所有相关信息。

输出

如果将上述程序保存为Example.py并执行,它将使用标准PNG显示实用程序显示原始(.jpg)和重新保存(.bmp)图像,如下所示 -

实际图像

原来的

重新保存的图像 (.bmp)

重新保存的图像

保存图像

save() 函数将图像写入文件。与读取(open() 函数)一样,save() 函数接受文件名、路径对象或已打开写入的文件对象。

句法

Image.save(fp, format=None, **params)

在哪里,

  • fp - 文件名(字符串)、pathlib.Path 对象或文件对象。

  • format - 可选格式覆盖。如果省略,则根据文件扩展名确定要使用的格式。如果使用文件对象而不是文件名,则应始终使用此参数。

  • options - 图像编写器的额外参数。

  • 返回值- 无

  • KeyError - 如果无法从文件名确定输出格式,请使用格式选项来解决此问题。

  • IOError - 如果无法写入文件,则该文件可能已创建,并且可能包含部分数据。

简而言之,上述语法会将图像保存在给定的文件名下。如果未指定格式,则基于当前文件扩展名。为了向作者提供附加说明,我们使用关键字选项。

image.save('beach1.bmp')

在上面的示例中,它根据文件扩展名来保存文件以确定图像的类型,例如 - 上面将在我们当前的工作目录中创建一个 bmp 文件。

您还可以显式指定文件类型作为第二个参数 -

image.save('beach1.gif', 'GIF')