Python Pillow 读取和保存图像

Python Pillow 读取和保存图像

本章阐述的主题包括如何在Pillow中读取和保存图像。

读取图像

PIL.Image模块函数 的帮助下,使用Pillow库读取和写入图像非常简单。

语法

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)图像,如下所示

实际图像

Python Pillow - 与图像打交道

重新保存的图像 (.bmp)

Python Pillow - 与图像打交道

保存一个图像

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')

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程