1. ホーム
  2. c++

[解決済み】libpngの警告:iCCP:既知の不正なsRGBプロファイル

2022-04-10 22:48:44

質問

SDLを使ってPNG画像を読み込もうとしていますが、プログラムがうまくいかず、コンソールに次のようなエラーが表示されます。

libpng 警告:iCCP:既知の不正確な sRGB プロファイル

なぜこのような警告が表示されるのですか?この問題を解決するにはどうしたらよいですか?

解決方法を教えてください。

Libpng-1.6では、ICCプロファイルのチェックが以前のバージョンよりも厳しくなっています。警告は無視してもかまいません。 この警告を消すには、PNG 画像から iCCP チャンクを削除してください。

警告をエラーとして扱うアプリケーションもあります。そのようなアプリケーションを使用している場合、チャンクを削除する必要があります。 そのようなアプリケーションを使用している場合は、チャンクを削除する必要があります。

convert in.png out.png

あるフォルダ(ディレクトリ)内のすべてのPNGファイルから、無効なiCCPチャンクを削除するためには mogrify をImageMagickから取得しました。

mogrify *.png

これは、あなたの ImageMagick が libpng16 と共にビルドされていることを必要とします。実行することで簡単に確認することができます。

convert -list format | grep PNG

すべてのファイルをやみくもに処理するのではなく、どのファイルを修正する必要があるのかを知りたい場合は、次のように実行します。

pngcrush -n -q *.png

ここで -n はファイルを書き換えないことを意味し -q は、警告を除くほとんどの出力を抑止することを意味します。申し訳ありませんが、pngcrush にはまだ警告以外の出力を抑制するオプションはありません。


ImageMagickのバイナリリリースは こちら


Androidプロジェクト(Android Studio)の場合は、次のように移動します。 res フォルダーに格納します。

例えば

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