検索

ホームページ  >  に質問  >  本文

警告: libpng 警告: iCCP: 既知の正しくない sRGB プロファイル

SDL を使用して PNG 画像をロードしようとしましたが、プログラムが実行されず、コンソールにこのエラーが表示されます

libpng 警告: iCCP: 既知の正しくない sRGB プロファイル

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

P粉002572690P粉002572690451日前917

全員に返信(2)返信します

  • P粉481035232

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

    pngcrush を使用して、PNG ファイルから間違った sRGB プロファイルを削除します: リーリー

    • -ow は入力ファイル を上書きします
    • -rem allb は、tRNS と gAMA を除くすべての補助ブロックを削除します。
    • -reduce ロスレス カラー タイプまたはビット深度の削減を実行します
    コンソール出力には、

    Removed the sRGB chunk と、場合によってはチャンクの削除に関するその他のメッセージが表示されます。最終的には、より小さく最適化された PNG ファイルが作成されます。このコマンドは元のファイルを上書きするため、必ずバックアップを作成するか、バージョン管理を使用してください。

    返事
    0
  • P粉300541798

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

    一部のアプリケーションは警告をエラーとして処理します。そのようなアプリケーションを使用している場合は、このブロックを削除する必要があります。これは、ImageMagick などの任意の種類の PNG エディタを使用して行うことができます。

    Windows CMD プロンプトを使用して、以下にリストされているコマンドを使用する前に、注目したい画像が含まれるフォルダーに cd (ディレクトリを変更) する必要があります。

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

    リーリー

    フォルダー (ディレクトリ) 内のすべての PNG ファイルから無効な iCCP ブロックを削除するには、ImageMagick の

    mogrify を使用できます。 リーリー

    これには、ImageMagick が libpng16 でビルドされている必要があります。次のコマンドを実行すると簡単に確認できます:

    リーリー

    すべてのファイルをやみくもに処理するのではなく、修復する必要があるファイルを見つけたい場合は、

    を実行できます。 リーリー

    ここで、

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

    注: pngcrush がインストールされている必要があります。


    ImageMagick のバイナリ バージョンは

    ここにあります


    Android プロジェクト (Android Studio) の場合は、

    res フォルダーに移動します。 ###例えば:### リーリー

    返事
    0
  • キャンセル返事