使用png影像常見的一個警告
- 2019 年 10 月 8 日
- 筆記
libpng warning: iCCP: known incorrect sRGB profile
原因
新版本(libpng-1.6)在檢查ICC配置文件(主要用於色彩校正)方面更加嚴格。您可以忽略該警告,但有些應用程式會將該警告處理為錯誤。
解決方法
刪除PNG影像中iCCP塊。為大家提供以下兩種方法。
- Unix系統下可以使用
convert
工具轉換
convert in.png out.png
- 可以使用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-PNG-20030520/#11iCCP