Python Pillow - 处理图像
本章详细介绍了一些主题,包括如何在 Pillow 中读取和保存图像。
读取图像
借助PIL.Image 模块函数,使用pillow库读写图像非常简单。
语法
Image.open(fp, mode=’r’)
这里
fp − 文件名(字符串)、pathlib.Path 对象或文件对象。 文件对象必须实现 read()、seek() 和 tell() 方法,并以二进制模式打开。
mode − 这是一个可选参数,如果给定,则必须是"r"。
Return value − 一个图像对象。
Error − 如果找不到文件,或者图像无法打开识别。
示例
以下是一个非常简单的示例,我们将打开任何格式的图像(我们使用的是 .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.open() 函数从磁盘读取图像,该函数返回图像对象数据类型。它将通过查看文件内容自动确定文件类型。 对于读取,open() 函数接受一个filename(string)、一个path object(路径对象) 或一个image(file) 对象。
因此,通过使用 open() 函数,我们实际上是在读取图像。 Image.open() 将读取图像并从图像中获取所有相关信息。
输出
如果将上述程序保存为 Example.py 并执行,它会使用标准 PNG 显示实用程序显示原始 (.jpg) 和重新保存 (.bmp) 图像,如下所示 −
实际图像
重新保存的图像 (.bmp)
保存图像
save() 函数将图像写入文件。 与读取(open() 函数)一样,save() 函数接受文件名、路径对象或已打开写入的文件对象。
语法
Image.save(fp, format=None, **params)
这里,
fp − 文件名(字符串)、pathlib.Path 对象或文件对象。
format − 可选的格式覆盖。 如果省略,则使用的格式由文件扩展名确定。 如果使用文件对象而不是文件名,则应始终使用此参数。
options − 图像编写器的额外参数。
Return value − None
KeyError − 如果无法根据文件名确定输出格式,请使用格式选项解决此问题。
IOError − 如果无法写入文件,则文件可能已创建,并且可能包含部分数据。
简而言之,上面的语法会将图像保存在给定的文件名下。 如果未指定格式,则它基于当前文件扩展名。 为了提供额外的说明,我们使用 keyword 关键字选项。
image.save('beach1.bmp')
在上面的例子中,它根据文件扩展名来确定图像类型来保存文件,例如 - 上面将在我们当前的工作目录中创建一个 bmp 文件。
你也可以明确指定文件类型作为第二个参数 −
image.save('beach1.gif', 'GIF')