libpng warning: iCCP: known incorrect sRGB profile

Reza Karami picture Reza Karami · Mar 30, 2014 · Viewed 238.8k times · Source

I'm trying to load a PNG image using SDL but the program doesn't work and this error appears in the console

libpng warning: iCCP: known incorrect sRGB profile

Why does this warning appear? What should I do to solve this problem?

Answer

Glenn Randers-Pehrson picture Glenn Randers-Pehrson · Mar 30, 2014

Libpng-1.6 is more stringent about checking ICC profiles than previous versions. You can ignore the warning. To get rid of it, remove the iCCP chunk from the PNG image.

Some applications treat warnings as errors; if you are using such an application you do have to remove the chunk. You can do that with any of a variety of PNG editors such as ImageMagick's

convert in.png out.png

To remove the invalid iCCP chunk from all of the PNG files in a folder (directory), you can use mogrify from ImageMagick:

mogrify *.png

This requires that your ImageMagick was built with libpng16. You can easily check it by running:

convert -list format | grep PNG

If you'd like to find out which files need to be fixed instead of blindly processing all of them, you can run

pngcrush -n -q *.png

where the -n means don't rewrite the files and -q means suppress most of the output except for warnings. Sorry, there's no option yet in pngcrush to suppress everything but the warnings.


Binary Releases of ImageMagick are here


For Android Projects (Android Studio) navigate into res folder.

For example:

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