发现一个问题,伙计交过来的pvr图片,我没法确切的知道他到底使用了哪种像素格式。
想到一个办法,可以在程序加载的时候打印出一些信息来得到这些信息。
主要修改 CCTexturePVR.m 这个文件,先看看pvr支持那些像素格式:
简要介绍一下,比较常用的格式有:
RGBA_8888 没像素占用4字节内存,还原度最高,纹理质量最高。
RGBA_4444 每像素占用2字节内存,背景图采用此类型较优
RGBA_5551 每像素占用2字节内存,如上
RGBA_565 每像素占用2字节内存,如上(4444,5551,565依据对透明度的不同要求做不同选择)~
RGBA_888 每像素占用3字节,不包含透明度的图片用这种像素格式是最优的。
PVRTC_4,PVRTC_2 每像素占4bit,2bit,效果还是相当不错的,不过占用的内存将为8888的16分之1。
不过,耗用如此低,对像素质量也不要报太高期望了。
解题,主要修改 CCTexturePVR.m 的 -unpackPVRData:PVRLen: 方法:
在方法末 return success;这句代码之前添加如下代码:
NSLog(@"width=%d, height=%d, formatFlags=0x%2x", width_, height_, formatFlags);
如上控制台输出表示加载了3张pvr图片第一张是 PVRTC4,第二、三张是 RGBA4444。