Python Pillow教程,本章阐述的主题包括如何在Pillow中读取和保存图像。
Pillow 读取图像
在PIL.Image模块函数的帮助下,使用Pillow库读取和写入图像非常简单。
Pillow 读取图像 语法
Image.open(fp, mode='r')
其中
- fp – 一个文件名(字符串)、pathlib.Path对象或一个文件对象。文件对象必须实现read()、seek()和tell()方法,并且是以二进制模式打开。
- mode – 这是一个可选的参数,如果给出,必须是’r’。
- 返回值 – 一个图像对象。
- 错误 – 如果找不到文件,或者图像不能被打开和识别。
Pillow 读取图像 示例
下面是一个非常简单的例子,我们将打开一个任何格式的图像(我们使用的是.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()将读取图像并从图像中获得所有相关的信息。
Pillow 读取图像 输出
如果你将上述程序保存为Example.py并执行,它会使用标准的PNG显示工具显示原始(.jpg)和重新保存的(.bmp)图像,如下所示
实际的图像
重新保存的图像(.bmp)
Pillow 保存一个图像
save()函数将一个图像写入文件。与读取(open()函数)一样,save()函数接受一个文件名、一个路径对象或一个已经打开的文件对象来写入。
Pillow 保存一个图像 语法
Image.save(fp, format=None, **params)
其中。
- fp – 文件名(字符串)、pathlib.Path对象或文件对象。
- format – 可选的格式重写。如果省略,使用的格式是由文件名扩展名决定的。如果使用文件对象而不是文件名,应该总是使用这个参数。
- options – 图像写入器的额外参数。
- 返回值 – 无
- KeyError – 如果不能从文件名确定输出格式,使用格式选项来解决这个问题。
- IOError – 如果文件不能被写入,文件可能已经被创建,可能包含部分数据。
简而言之,上面的语法将在给定的文件名下保存图像。如果没有指定格式,那么就根据当前的文件名扩展名。为了向写入者提供额外的指示,我们使用了关键字选项。
image.save('beach1.bmp')
在上面的例子中,它根据文件扩展名来保存文件,以确定图像的类型,例如–上面将在我们当前的工作目录下创建一个bmp文件。
你也可以明确地指定文件类型作为第二个参数 –
image.save('beach1.gif', 'GIF')