详解Python PIL Image.save()方法

  • Post category:Python

Python PIL 是 Python 的一个图像处理库,提供了多种对图像进行处理和操作的方法。PIL 中的 Image.save() 方法是用来保存 PIL Image 对象到指定路径的一个方法。在这里,我将为您详细讲解Python PIL Image.save()方法的完整攻略。

方法介绍

Image.save() 方法是一个用于保存 PIL Image 对象的方法,其函数原型如下:

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

该方法需要传入一个表示保存路径的字符串参数 fp,可选的格式参数 format 和关键字参数 params。

其中,参数 fp 是文件的输出路径。如果该文件已经存在,则它将被覆盖。如果不存在目标路径,该方法将创建一个新文件。

参数 format 是可选参数,用来指定输出文件的格式。如果该参数为空,则该方法会根据文件扩展名来自动判断输出文件格式。如果没有设置该参数,则输出文件的格式为输入文件的格式。

参数 params 是可选的关键字参数,对于某些格式来说,可以使用这些参数来控制保存文件的一些参数,例如 JPEG 图像的品质、PNG 图像的压缩层级等。

方法示例

下面的示例使用 Image 模块打开一个图片,然后将其保存到指定目录中。

from PIL import Image

# 打开图片
im = Image.open("test.jpg")

# 将图片保存到指定路径
im.save("test_save.jpg")

该示例中,我们首先从 PIL 导入 Image 模块,并使用 Image.open() 方法打开 test.jpg 图像。接着,我们使用 Image.save() 方法将图像保存到指定的目录中,这里我们将其保存到 test_save.jpg。

接下来,我们来看一下 Image.save() 方法的更多参数说明:

1. 格式参数 format

在 Image.save() 中,format 参数提供了一种指定输出文件格式的方法。如果该参数被指定,则 Image.save() 将默认使用该参数所指定的文件格式来保存图像。如果该参数为空,则 Image.save() 将根据文件扩展名自动判断所保存图像的格式。

来看一个使用 format 参数的示例:

from PIL import Image

# 打开图片
im = Image.open("test.jpg")

# 将图片保存到指定路径,指定保存格式为 JPEG
im.save("test_save.jpeg", format="JPEG")

在这个示例中,我们将 format 参数设置为 JPEG,因此该方法将使用 JPEG 格式来保存图像。

2. 关键字参数 params

关键字参数 params 可以用来控制保存到文件的一些参数,例如 JPEG 图像的品质、PNG 图像的压缩层级等。以下是一些可用的关键字参数:

  • JPEG: quality – JPEG 品质,压缩程度从 1 ~ 95,默认为 75。
  • PNG: compress_level – PNG 压缩层级,取值范围从 1 ~ 9,默认为 6。

来看一个使用 params 参数的示例:

from PIL import Image

# 打开图片
im = Image.open("test.jpg")

# 将图片保存到指定路径,指定JPEG的品质为60
im.save("test_save.jpg", params={"quality": 60})

在这个示例中,我们将 JPEG 的品质设置为 60,因此该方法将使用 JPEG 格式并从而会使用品质 60 来保存图像。

小结

Python PIL 的 Image.save() 方法提供了一种简单、灵活的方法来保存 PIL Image 对象。该方法接受多个参数,用于控制保存文件的格式,保存路径及其它参数。在您的图像处理过程中,使用 Image.save() 方法可让您轻松地将处理后的图像输出到不同支持的格式中,并且适用于绝大多数应用场景。