libpng warning: iCCP: known incorrect sRGB profile
原因
新版本(libpng-1.6)在检查ICC配置文件(主要用于色彩校正)方面更加严格。您可以忽略该警告,但有些应用程序会将该警告处理为错误。
解决方法
删除PNG图像中iCCP块。为大家提供以下两种方法。
Unix系统下可以使用
convert
工具转换1
convert in.png out.png
可以使用Qt库实现来转换
1
2
3QPixmap pixmap;
pixmap.load("in.png");
pixmap.save("out.png", "PNG");
关于更多
- ICCP:iCCP嵌入式ICC配置文件。
- 在PLTE和IDAT之前。如果存在iCCP块,则不应该存在sRGB块。
- 另外,PNG数据流最多应包含一个嵌入式配置文件,无论是使用iCCP块显式指定还是使用sRGB块隐式指定。
- ICC配置文件:颜色空间的描述(以国际颜色联盟(ICC)的形式)。
- sRGB:标准RGB颜色空间(一个图像样本符合这个颜色空间的指示)。
- ref:https://www.w3.org/TR/2003/PR-PNG-20030520/#11iCCP