我嘗試使用 SDL 載入 PNG 映像,但程式無法運行,並且在控制台中出現此錯誤
libpng 警告:iCCP:已知不正確的 sRGB 設定檔
為什麼會出現這個警告?我該怎麼做才能解決這個問題?
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 檔案。由於該命令將覆蓋原始文件,因此請確保建立備份或使用版本控制。
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