AS问题解决系列3—iCCP: Not recognizing known sRGB profile

AS问题解决系列3—iCCP: Not recognizing known sRGB profile

 

http://my.oschina.net/1pei/blog/479162

4.6 问题解决

     明确了linpng严格检查的版本以及检查的内容后,那么如何来解决该问题呢。

4.6.1 解决方案1: 删除png图片内嵌的iCCP profile sRGB

    [13, 16, 17]中有一些答案建议通过Image Magick/mogrify/GIMP/exiftool等工具来"convert"或"mogrify"图片,删除png图片中内嵌的iCCP profile sRGB:

   Image Magick使用举例:

       删除单个png文件内的profile:  % convert -strip <input filename> <output filename>

       批量删除所有png文件内的profile sRGB:

           set fn=E:\Program Files\ImageMagick-6.9.0-Q16\convert.exe

           for /f "tokens=*" %%i in ('dir/s/b *.png') do "%fn%" "%%i" -strip "%%i"

   mogrify使用举例:

 

       删除单个png文件内的profile sRGB:  mogrify +profile sRGB <png file>

      批量删除所有png文件内的profile sRGB:

             find <path to res folder> -name *.png -exec mogrify +profile sRGB {}  \;

    GIMP使用举例:

       删除内嵌profile, 可先进入Image > Mode > Assign Color Profile并设置为RGB workspace(sRGB built-in), 然后File > Overwrite add_green.png覆盖原来的png文件。

       修改内嵌profile, 可进入Image > Mode > Convert to Color Profile, 可选择一种profile。

 

   [17]也还提到:libpng 1.6+更严格的检查会对original HP/MS sRGB profile报警。老的profile使用D50 whitepoint, 而D65才是标准。这种profile由Adobe Photoshop使用, 虽然缺省在png图片中并不嵌入该profile。最简单的方法是从图片中删除内嵌的profile,但这会导致颜色有稍许偏差(当有颜色校正系统时)。但如果不希望颜色有偏差(例如用于打印输出), 可以嵌入另一种不同的颜色profile。

   [13]中也有网友指出:这样删除png图片中的iCCP profile sRGB, 将丢失如何来render图片等信息,png中的色彩可能被改变。

4.6.2 解决方案2:  将aRGB转换为sRGB

   [14]中有网友提到:这个图片是sRGB的改成ARGB(Adobe RGB)的就可以啦,在Android  Studio中的右上角会显示24位而ARGB的图片显示是32位,但我本地报这种警告的png图片除了有32位以外还有24位的,因此这个方案不太可行。

 

  综合上面的意见,[17]中给出的结论比较令人信服,利用GIMP工具删除内嵌的profile后问题解决。

 

 

mipmap 目录和drawable 目录有什么区别

我简单总结一下:

使用上没有任何区别,你把它当drawable用就好了。

但是用mipmap系统会在缩放上提供一定的性能优化。

但是 放入mipMap 的图片 如果出现 

iCCP: Not recognizing known sRGB profile

布局文件里面,图片ID会找不到, 

因此 使用PhotoShop 生成PNG图片的时候 要注意

你可能感兴趣的:(AS问题解决系列3—iCCP: Not recognizing known sRGB profile)