Python 使用PIL.Image保存jpg或jpeg格式图片出现色差问题【已解决】:
最近使用Python处理图片遇到的一个问题,使用Image模块读取图片并处理,之后再存回去之后发现图片出现了色彩差异,效果如下:
经过排查发现色彩差异是由于两张图片的色彩空间不同导致的。具体色彩空间的知识可以戳色彩空间基础。
简单来说就是,原图片的icc配置文件中指明使用Adobe RGB色彩空间,而图片保存后默认使用sRGB色彩空间。
因此,我们在保存图片时只要将icc配置文件一同保存即可。
img.save(‘pic_name.jpg’, icc_profile=img.info.get(‘icc_profile’), quality=100)
1
2
需要指出:
JPG属于有损形式的图片压缩,使用PNG格式的图片可以避免这个问题
由于sRGB是屏幕显示和网络传输的事实标准,因此从网络上下载的图片也都不会出现这个问题,只有使用相机拍摄或PS处理后的图片才可能出现上述问题