【CV】PIL.Image.save() 保存图片压缩问题

1. 出现的问题:

在Pillow中的PIL.Image.save()方法中,使用默认参数保存jpg图片的过程中发现图片被压缩的很严重,导致原来很大的图片变成几十KB。但是有些时候往往需要图片的大小不能变化太大或不能太小。

2. 问题原因:

这是因为在保存为jpg的过程中,PIL.Image.save()方法内部使用压缩算法对图片进行的压缩处理。

3. 解决方法

在保存的时候,加上一些参数。

form PIL import Image
img = Image.open("xxx.jpg")
img.save(img_name, quality=95)

quality参数: 保存图像的质量,值的范围从1(最差)到95(最佳)。 默认值为75,使用中应尽量避免高于95的值; 100会禁用部分JPEG压缩算法,并导致大文件图像质量几乎没有任何增益。

使用此参数后,图片大小会增加。如果图片的大小还不能满足你的需求,是否还有其他方式去增加图片大小呢?

通过查阅资料并尝试,发现save方法还有一个可以配合quality使用的参数,能够大大增加图片大小:

img.save(new_name, quality=95, subsampling=0) # 可能的子采样值是0,1和2

subsampling参数:子采样,通过实现色度信息的分辨率低于亮度信息来对图像进行编码的实践。

注意: 以上方法的参数只针对于保存为JPG/JPEG格式的图片的情况,在项目实践过程中,楼主只使用了quality参数就满足了要求,后面的subsampling参数未使用。以上仅供参考。

参考

https://blog.csdn.net/weixin_41935140/article/details/83308359

你可能感兴趣的:(图像处理)