首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ 程序運行輸出 libpng 警告:iCCP: Not recognizing known sRGB profile 解決方法

     編輯:程式設計綜合問答

現象

控制台反覆輸出:libpng warning: iCCP: Not recognizing known sRGB profile that has been edited,程序邏輯正常但刷屏日誌。

原因

程序加載的 PNG 圖片嵌入了 不符合 sRGB 標準的 ICC 配置文件(可能被圖片編輯器錯誤修改)。libpng 解碼時檢測到不匹配發出警告。

解決方案

  1. 修復圖片資源(推薦):用 ImageMagick 批量清理 ICC 配置。
    
    mogrify -strip *.png        # 刪除所有配置文件、註釋
    # 或保留 sRGB 但修正
    mogrify -profile /path/to/sRGB.icc *.png
    
  2. 代碼層面抑制警告:
    
    // 初始化 libpng 時設置錯誤處理函數忽略警告
    png_set_benign_errors(png_ptr, 1); // 將警告降級為非錯誤
    // 或自定義 warning_fn 不輸出
    
  3. IDE 運行配置過濾:VS 輸出視窗右鍵「過濾」輸入 libpng 隱藏該警告(不解決根因但乾淨)。

驗證

修復圖片後重新編譯運行,警告消失;若仍有,檢查是否有動態下載的圖片資源同樣問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved