对Image类的建议

项目目前碰到一个问题,就是资源总量会很大,而通过cocostudio导出的是png格式,压缩比不是很理想,想通过JPG+alpha通道的方式自己构建一种图片格式,但是cocos不支持自定义图片格式,于是就想了种变通的方案,即先通过JPG构造Image对象,再改造Image的数据,把alpha部分加进去。接下来就碰到问题了:
本来是想通过继承重写initWithJpgData方法,但_data,_dataLen和_renderFormat都是私有属性,由于JPG导进来以后默认设置_renderFormat为RGB888,即使改了_data,由于后两者都只提供getter没有setter,数据也不完整,结论是:不可行。

所以个人有以下3点想法:
1,protected方法,原本是为了支持扩展,可是由于方法里使用私有变量而导致无法扩展,那还不如直接声名为private的。
2,Texture本身不应该和图片格式直接挂钩的,但是由于Image解析图片时,将数据结构和图片格式绑定的很死,直接导致Texture和图片格式绑定到了一起,无法通过自己构造Image实例提供给Texture。
3,Image类最好能够提供内部数据转换方法,比如从RGB888到RGBA8888,或者滤镜之类的功能,至少就我们目前的情况来看,要解决自定义图片格式的问题,除了改类库代码,找不到另外更好的办法。

我不知道我碰到的问题能引起多少共鸣,对于一些资源量大的游戏来说,安装包大小的控制是个重要问题,我希望cocos能在这方面提供更好的可控性和可优化性,为研发人员提供更多的选择。
当然也许是因为本人接触cocos时间很短,所以有些机制不太了解,如果哪位朋友能够提供解决方案,我将不胜感激。

这个cocostudio这方面确实不好

在这里建有issue
http://www.cocos2d-x.org/issues/3804
后面会修改。