84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
我嘗試使用 SDL 載入 PNG 映像,但程式無法運行,並且在控制台中出現此錯誤
libpng 警告:iCCP:已知不正確的 sRGB 設定檔
為什麼會出現這個警告?我該怎麼做才能解決這個問題?
使用pngcrush從png檔案中刪除不正確的sRGB設定檔:
pngcrush
pngcrush -ow -rem allb -reduce file.png
-ow
-rem allb
-reduce
在控制台輸出中,您應該會看到Removed the sRGB chunk,以及可能更多有關區塊刪除的訊息。您最終將得到一個更小、優化的 PNG 檔案。由於該命令將覆蓋原始文件,因此請確保建立備份或使用版本控制。
Removed the sRGB chunk
某些應用程式將警告視為錯誤;如果您正在使用此類應用程序,則必須刪除該區塊。您可以使用任何種類的 PNG 編輯器來完成此操作,例如 ImageMagick。
使用Windows CMD提示,您需要cd(更改目錄)到包含您要關注的映像的資料夾,然後才能使用下面列出的命令.
cd
Libpng-1.6對於ICC配置檔案的檢查比以前的版本更加嚴格;您可以忽略該警告。要擺脫它,請從 PNG 映像中刪除 iCCP 區塊。
convert in.png out.png
要從資料夾(目錄)中的所有 PNG 檔案中刪除無效的 iCCP 區塊,您可以使用 ImageMagick 中的 mogrify:
mogrify
mogrify *.png
這要求您的 ImageMagick 是使用 libpng16 建構的。您可以透過運行輕鬆檢查它:
convert -list format | grep PNG
如果您想找出哪些文件需要修復,而不是盲目地處理所有文件,您可以執行
pngcrush -n -q *.png
其中 -n 表示不重寫文件,-q 表示抑制除警告之外的大部分輸出。抱歉,pngcrush 中還沒有選項可以抑制除警告之外的所有內容。
-n
-q
注意:您必須安裝pngcrush。
ImageMagick 的二進位版本位於此處
#對於 Android 專案 (Android Studio),導覽至 res 資料夾。
res
例如:
C:\{your_project_folder}\app\src\main\res\drawable-hdpi\mogrify *.png
使用
pngcrush
從png檔案中刪除不正確的sRGB設定檔:-ow
將覆寫輸入檔-rem allb
將刪除除 tRNS 和 gAMA 之外的所有輔助區塊-reduce
進行無損色彩類型或位元深度縮減在控制台輸出中,您應該會看到
Removed the sRGB chunk
,以及可能更多有關區塊刪除的訊息。您最終將得到一個更小、優化的 PNG 檔案。由於該命令將覆蓋原始文件,因此請確保建立備份或使用版本控制。某些應用程式將警告視為錯誤;如果您正在使用此類應用程序,則必須刪除該區塊。您可以使用任何種類的 PNG 編輯器來完成此操作,例如 ImageMagick。
使用Windows CMD提示,您需要
cd
(更改目錄)到包含您要關注的映像的資料夾,然後才能使用下面列出的命令.Libpng-1.6對於ICC配置檔案的檢查比以前的版本更加嚴格;您可以忽略該警告。要擺脫它,請從 PNG 映像中刪除 iCCP 區塊。
要從資料夾(目錄)中的所有 PNG 檔案中刪除無效的 iCCP 區塊,您可以使用 ImageMagick 中的
mogrify
:這要求您的 ImageMagick 是使用 libpng16 建構的。您可以透過運行輕鬆檢查它:
如果您想找出哪些文件需要修復,而不是盲目地處理所有文件,您可以執行
其中
-n
表示不重寫文件,-q
表示抑制除警告之外的大部分輸出。抱歉,pngcrush 中還沒有選項可以抑制除警告之外的所有內容。注意:您必須安裝pngcrush。
ImageMagick 的二進位版本位於此處
#對於 Android 專案 (Android Studio),導覽至
res
資料夾。例如: