搜尋

首頁  >  問答  >  主體

警告:libpng警告:iCCP:已知不正確的sRGB配置文件

我嘗試使用 SDL 載入 PNG 映像,但程式無法運行,並且在控制台中出現此錯誤

libpng 警告:iCCP:已知不正確的 sRGB 設定檔

為什麼會出現這個警告?我該怎麼做才能解決這個問題?

P粉002572690P粉002572690428 天前902

全部回覆(2)我來回復

  • P粉481035232

    P粉4810352322023-10-13 18:57:24

    使用pngcrush從png檔案中刪除不正確的sRGB設定檔:

    pngcrush -ow -rem allb -reduce file.png
    
    • -ow 將覆寫輸入檔
    • -rem allb 將刪除除 tRNS 和 gAMA 之外的所有輔助區塊
    • -reduce 進行無損色彩類型或位元深度縮減

    在控制台輸出中,您應該會看到Removed the sRGB chunk,以及可能更多有關區塊刪除的訊息。您最終將得到一個更小、優化的 PNG 檔案。由於該命令將覆蓋原始文件,因此請確保建立備份或使用版本控制。

    回覆
    0
  • P粉300541798

    P粉3005417982023-10-13 14:10:19

    某些應用程式將警告視為錯誤;如果您正在使用此類應用程序,則必須刪除該區塊。您可以使用任何種類的 PNG 編輯器來完成此操作,例如 ImageMagick

    使用Windows CMD提示,您需要cd(更改目錄)到包含您要關注的映像的資料夾,然後才能使用下面列出的命令.

    Libpng-1.6對於ICC配置檔案的檢查比以前的版本更加嚴格;您可以忽略該警告。要擺脫它,請從 PNG 映像中刪除 iCCP 區塊。

    convert in.png out.png
    

    要從資料夾(目錄)中的所有 PNG 檔案中刪除無效的 iCCP 區塊,您可以使用 ImageMagick 中的 mogrify

    mogrify *.png
    

    這要求您的 ImageMagick 是使用 libpng16 建構的。您可以透過運行輕鬆檢查它:

    convert -list format | grep PNG
    

    如果您想找出哪些文件需要修復,而不是盲目地處理所有文件,您可以執行

    pngcrush -n -q *.png
    

    其中 -n 表示不重寫文件,-q 表示抑制除警告之外的大部分輸出。抱歉,pngcrush 中還沒有選項可以抑制除警告之外的所有內容。

    注意:您必須安裝pngcrush


    ImageMagick 的二進位版本位於此處


    #對於 Android 專案 (Android Studio),導覽至 res 資料夾。

    例如:

    C:\{your_project_folder}\app\src\main\res\drawable-hdpi\mogrify *.png
    

    回覆
    0
  • 取消回覆