解决Cocos客户端libpng warning:iCCp:known incorrect sRGB profile


方案1,改写libpng源码,在打印处加入文件名(改写成功,生成了lib和dll,但未见打印效果)。
方案2,使用GIMP手动改写png的色彩配置文件为sRGB v4 ICC preference.ICC 色彩配置文件,效率低。下载地址: http://www.gimp.org/downloads/

方案3,使用ImageMagic 编写Python脚本批量删除文件内置的sRGB配置文件,由此发现png图片名字中带有空格的执行脚本失败,且剩余未转换图片数与libpng warning:iCCp:kNown incorrect sRGB profile下载地址:http://www.color.org/srgbprofiles.xalter#v4pref

脚本:

import os


CMD = r'D:\ImageMagick\convert.exe'
SOURCE_PATH = r'e:\srgb'


def doStrip(path):
data = {};
print(path)
for root,dirs,files in os.walk(path):
for file in files:
name = file.lower();
if name.find('.png') != -1:
path = os.path.join(root,file)
#print('"{0}" {1} -strip {1}'.format(CMD,path,path))
#os.system('"{0}" {1} -strip {1}'.format(CMD,path));
#print('"{0}" {1} -profile "sRGB_v4_ICC_preference.icc" {1}'.format(CMD,path))
os.system('"{0}" {1} -profile sRGB_v4_ICC_preference.icc {1}'.format(CMD,path));



doStrip(SOURCE_PATH)


有2点注意:

1.python脚本对空格和tab很敏感,报一些错误要单独处理

2.注释的第2句话是说删除文件包含的所有Iccp配置文件,而循环中最后一句话是说更换Iccp配置文件为sRGB_v4_ICC_preference。如果删除,则文件会变小,但未发现有任何问题。谨慎一些,不在乎大小的话,还是用目前的脚本,否则就注释当前循环的最后一句话,放开注释的第二句话即可。

相同,至少可以肯定有很大一部分该打印信息都是由于png图片名字带空格引起。


具体为什么修改色彩配置空间可参考

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

http://blog.sina.com.cn/s/blog_489988100101gmcl.html

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...