使用png图像常见的一个警告

libpng warning: iCCP: known incorrect sRGB profile

原因

  新版本(libpng-1.6)在检查ICC配置文件(主要用于色彩校正)方面更加严格。您可以忽略该警告,但有些应用程序会将该警告处理为错误。

解决方法

  删除PNG图像中iCCP块。为大家提供以下两种方法。

  1. Unix系统下可以使用convert工具转换
convert in.png out.png
  1. 可以使用Qt库实现来转换
QPixmap 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…
    原文作者:Qt君
    原文地址: https://segmentfault.com/a/1190000020496918
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞