The past weeks I compiled an android app and I was getting:
AAPT: .... iCCP: Not recognizing known sRGB profile that has been edited
Not so nice. I found out that it was because AAPT is compiled against a newer libpng. Since the PNGs I had were not stock ones, the only way to get rid of these warnings would be to fix the color profile. I tried re-exporting with GIMP to no avail :(. However, according to this post, ImageMagick works. So, here are the steps I did:
- Install ImageMagick
- Write a script to batch-strip the color information from the image
Installing ImageMagick is somewhat easy. OSX users can use homebrew. Linux users can use things like apt-get. On windows, I found it better to download the statically linked version (...static.exe installer).
Since I'm on windows right now, I ended up writing a script. It has the following assumptions:
- It's placed in the root of your project
- The project has a standard structure with an "app" module (like Android Studio creates it)
- ImageMagick is installed in C:\Pgm\java-32\ImageMagick-6.9.1-Q16
The script looks like this:
rem Copyright (c) 2015 Laur IVAN
rem Public domain. I'm not responsible for its side-effects.
@ECHO OFF
SETLOCAL enabledelayedexpansion
set "convert=C:\Pgm\java-32\ImageMagick-6.9.1-Q16\mogrify.exe"
set "identify=C:\Pgm\java-32\ImageMagick-6.9.1-Q16\identify.exe"
rem cd resources\images
cd app
FOR /R "." %%G in (*.png) DO (
call :subroutine "%%G"
)
rem cd ..\..
cd ..
goto :EOF
:subroutine
set "var=%1"
set "tmp=%1_c.png"
rem echo %var%
if not x%var:src=%==x%var% (
echo Changing %var%
rem %identify% %var%
echo %convert% -strip %var%
)
goto :EOF
EOF:
The script uses mogrify and not convert, because I only want to change the source file. The -strip flag will strip all information form the image. So if you have something with a copyright you may want to use something like +profile "*" .
HTH,
Member discussion: