我正在尝试使用 SDL 加载 PNG 图像,但程序无法运行,并且此错误出现在控制台中
libpng warning: iCCP: known incorrect sRGB profile
为什么会出现此警告?我应该怎么做才能解决这个问题?
最佳答案
Libpng-1.6 在检查 ICC 配置文件方面比以前的版本更严格。您可以忽略警告。要摆脱它,请从 PNG 图像中删除 iCCP block 。
某些应用程序将警告视为错误;如果您正在使用这样的应用程序,则必须删除该 block 。您可以使用各种 PNG 编辑器(例如 ImageMagick 的
)中的任何一种来做到这一点convert in.png out.png
要从文件夹(目录)中的所有 PNG 文件中删除无效的 iCCP block ,您可以使用 ImageMagick 中的 mogrify
:
mogrify *.png
这要求您的 ImageMagick 是使用 libpng16 构建的。您可以通过运行轻松检查它:
convert -list format | grep PNG
如果您想找出需要修复哪些文件而不是盲目处理所有文件,您可以运行
pngcrush -n -q *.png
-n
表示不重写文件,-q
表示抑制除警告之外的大部分输出。抱歉,pngcrush 中除了警告之外没有其他选项可以抑制所有内容。
ImageMagick 的二进制版本是 here
对于 Android 项目 (Android Studio),导航到 res
文件夹。
例如:
C:\{your_project_folder}\app\src\main\res\drawable-hdpi\mogrify *.png
关于c++ - libpng 警告 : iCCP: known incorrect sRGB profile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22745076/