乐趣区

使用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…
退出移动版