如何完美解决 libpng warning: iCCP: known incorrect sRGB profile

问题背景

最近在开发一个小游戏的时候,遇到了一个烦人的警告:

libpng warning: iCCP: known incorrect sRGB profile

问题原因

1. 警告的来源

  • libpng 是 Java 用来处理 PNG 图片的底层库。
  • 警告 libpng warning: iCCP: known incorrect sRGB profile 的意思是:PNG 图片中嵌入的颜色配置文件(iCCP 块)有问题。
  • 在我的项目中,xxx.png 是一个 PNG 文件,加载时触发了这个警告。

2. 其他来源

  • 还有一种就是可能是输入法导致的,就是如果你在中文输入状态下,如IDEA可能会识别到错误的UTF-8或者GBK的错误字符,而导致这个错误,请尽量在英文状态下使用,或干脆用英文输入法

解决方案

经过多次尝试,我总结了两个步骤来彻底解决这个问题:修复图片优化代码

步骤 1:修复图片(移除 iCCP 块)

方法 1:用 ImageMagick 移除 iCCP 块(最有效)
  1. 下载并安装 ImageMagick
    • 访问 ImageMagick 官网的下载页面:https://imagemagick.org/script/download.php。
    • 如果找不到直接入口,可以从 SourceForge 下载:https://sourceforge.net/projects/imagemagick/files/latest/download。
    • 我用的是 Windows 系统,下载了 ImageMagick-7.1.1-33-Q16-HDRI-x64-dll.exe,安装时勾选“Add to PATH”。
    • 安装完成后,在命令行运行 magick -version 确认安装成功(会显示版本号,例如 Version: ImageMagick 7.1.1-33)。
  2. 移除 iCCP 块
    • 打开命令提示符(cmd),进入图片所在的目录在他的绝对路径上面写cmd按下回车确认:
    • 运行以下命令

      magick mogrify -strip xxx.png

      -strip 会移除 background.png 中的所有元数据,包括有问题的 iCCP 块。

    • 理后,重新运行程序,警告消失!

方法 2:将 PNG 转换为 JPG(避开 PNG 处理)

  • 如果不想处理 PNG 文件,可以将 xxx.png 转换为 JPG 格式,避开 libpng 的处理。
  1. 用 Photoshop 打开 xxx.png,选择 文件 -> 另存为,保存为 xxx.jpg

你可能感兴趣的:(JAVA基础,java,java基础,开发语言)