找回密码
 会员注册
查看: 37|回复: 0

PIL(PythonImagingLibrary)中保存图片时,save()函数使用详解

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
73422
发表于 2024-9-4 09:38:11 | 显示全部楼层 |阅读模式
save()函数参数:format:指定保存图像的格式,如JPEG、PNG、GIF等。如果未指定格式,则根据文件扩展名自动推断。quality:用于指定JPEG格式的图像质量,取值范围为1-95。实际调用时都是些100optimize:对于某些格式(如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(InternationalColorConsortium)配置文件的路径。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相同:fromPILimportImage#打开图像image=Image.open("image.jpg")#设置DPIdpi_value=300#保存图像,并设置水平和垂直方向上的DPI为相同的值image.save("output.jpg",dpi=(dpi_value,dpi_value))在上述示例中,我们将图像的DPI设置为300,并使用save()函数将图像保存为"output.jpg",同时将水平和垂直方向上的DPI设置为相同的值。案例2、设置图片的配置文件在PIL库的save()方法中,还有一个可选参数icc_profile用于指定图像的ICC(InternationalColorConsortium)配置文件。ICC配置文件是一种描述颜色空间和颜色管理信息的文件,用于确保图像在不同设备和软件之间的一致显示和输出。通过使用icc_profile参数,您可以将ICC配置文件嵌入到保存的图像中。以下是示例代码,展示了如何在保存图像时使用icc_profile参数:fromPILimportImage#打开图像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为300quality(可选参数):用于指定JPEG格式的图像质量,取值范围为1-95。实际调用时都是些100optimize(可选参数):用于某些格式(如GIF),指定是否优化保存的图像文件大小,默认为False。如果设置为True,则会尝试减小文件大小,但可能会增加保存时间。icc_profile:用于指定图像的ICC(InternationalColorConsortium)配置文件的路径。常用的基本上就这么多,如果以上还不能满足你的要求,请查阅pil文档
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-13 03:13 , Processed in 0.502617 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表