PIL(Python Imaging Library)中save()函数使用详解及示例

save()函数参数:

  • format:指定保存图像的格式,如 JPEG、PNG、GIF 等。如果未指定格式,则根据文件扩展名自动推断。
  • quality:用于指定 JPEG 格式的图像质量,取值范围为 1-95。实际调用时都是些100
  • optimize:对于某些格式(如 GIF),通过将此参数设置为True来优化保存的图像文件大小。
  • progressive:对于 JPEG 格式,通过将此参数设置为True来生成渐进式的 JPEG 图像。
  • compress_level:用于某些格式(如 PNG),指定压缩级别。取值范围为 0-9,其中 0 表示无压缩,9 表示最高压缩。
  • subsampling:对于 JPEG 格式,用于指定色度子采样的方法。可以是0(4:4:4,无子采样)、1(4:2:2,水平子采样)或2(4:2:0,水平和垂直子采样)。
  • dpi:用于设置图像的 DPI(每英寸点数),可以传递一个整数值或表示水平和垂直 DPI 的元组。
  • icc_profile:用于指定图像的 ICC(International Color Consortium)配置文件的路径。
  • append_images:用于 GIF 格式,指定要附加到原始图像之后的图像序列。传递一个图像列表作为参数。
  • save_all:用于 GIF 格式,指定是否保存所有图像帧,默认为False
  • loop:用于 GIF 格式,指定循环播放的次数。可以传递一个整数值,表示循环次数;或者传递0表示无限循环。
  • duration:用于 GIF 格式,指定每个帧之间的显示时间(以毫秒为单位)。
  • 其他特定格式的参数:不同的图像格式可能具有特定的保存选项,可以根据格式的要求传递额外的参数。
  • 简单案例演示:


    案例1、设置保存图片DPI

    在 PIL 中,dpi=(dpi_value, dpi_value) 表示在保存图像时设置水平和垂直方向上的 DPI(每英寸点数)为相同的值。

    通常情况下,图像的 DPI 是以元组 (horizontal_dpi, vertical_dpi) 的形式进行设置。但是,对于大多数图像格式来说,水平和垂直方向上的 DPI 设置为相同的值是足够的。

    以下是一个示例代码,展示了如何使用 dpi=(dpi_value, dpi_value) 来设置水平和垂直方向上的 DPI 相同:

    from PIL import Image
    
    # 打开图像
    image = Image.open("image.jpg")
    
    # 设置 DPI
    dpi_value = 300
    
    # 保存图像,并设置水平和垂直方向上的 DPI 为相同的值
    image.save("output.jpg", dpi=(dpi_value, dpi_value))
    

    在上述示例中,我们将图像的 DPI 设置为 300,并使用 save() 函数将图像保存为 "output.jpg",同时将水平和垂直方向上的 DPI 设置为相同的值。

    案例2、设置图片的配置文件

    在PIL库的save()方法中,还有一个可选参数icc_profile用于指定图像的ICC(International Color Consortium)配置文件。

    ICC配置文件是一种描述颜色空间和颜色管理信息的文件,用于确保图像在不同设备和软件之间的一致显示和输出。通过使用icc_profile参数,您可以将ICC配置文件嵌入到保存的图像中。

    以下是示例代码,展示了如何在保存图像时使用icc_profile参数:

    from PIL import Image
    
    # 打开图像
    image = Image.open("image.jpg")
    
    # 设置ICC配置文件路径
    icc_profile_path = "sRGB.icc"
    
    # 保存图像,并嵌入ICC配置文件
    image.save("output.jpg", icc_profile=icc_profile_path)
    

    在上述示例中,我们打开了名为image.jpg的图像,并将ICC配置文件的路径设置为"sRGB.icc"。然后,我们使用save()方法将图像保存为output.jpg,并通过icc_profile参数指定了ICC配置文件。

    请注意,要使用icc_profile参数,您需要确保安装了Pillow库的可选依赖lcms2。在某些系统上,可能需要手动安装lcms2库。

    复杂案例演示:

    
    # 打开图像
    image = Image.open("image.jpg")
    
    # 设置ICC配置文件路径
    icc_profile_path = "sRGB.icc"
    
    # 输出文件地址
    file_path = "image_out.jpg"
    
    
    # 保存
    image .save(file_path, dpi=(300, 300), quality=100, optimize=True, icc_profile=icc_profile_path)
    
    # 参数解释
    file_path:图片输出位置
    dpi:设置图像的 DPI 是 (horizontal_dpi, vertical_dpi) 水平和竖直DPI为300
    quality(可选参数):用于指定 JPEG 格式的图像质量,取值范围为 1-95。实际调用时都是些100
    optimize(可选参数):用于某些格式(如 GIF),指定是否优化保存的图像文件大小,默认为False。如果设置为True,则会尝试减小文件大小,但可能会增加保存时间。
    icc_profile:用于指定图像的 ICC(International Color Consortium)配置文件的路径。

    常用的基本上就这么多,如果以上还不能满足你的要求,请查阅pil文档

    物联沃分享整理
    物联沃-IOTWORD物联网 » PIL(Python Imaging Library)中save()函数使用详解及示例

    发表评论