上面已经把Layer and mask(图层与蒙版信息)这部分的字节流保存起来了,这里就是主要对这部分内容进行解析,包括图层的信息以及图层的内容。
从这里可以发现这部分信息包含两个模块,Layers(图层)跟Global layer mask(全局图层蒙版),蒙版我们先不管它,主要是看Layers(图层):
从上面的表格可以分析出来,图层信息部分的长度是有点特殊的,它必须是2的倍数,所以读出这部分长度:
layerData = new ByteArray();//layerlayerLen = data.readInt();//2-12if(0 != layerLen){ //补充到2的倍数 while(0 != layerLen%2) { layerLen += 1; } data.readBytes(layerData, 0, layerLen);}
到这里,已经就把所有的图层信息保存在了layerData字节数组里面。
剩下的部分就是Global layer mask的内容:
//layerMaskglobalLayerMaskData = new ByteArray();globalMaskLen = data.readInt();if(0 != globalMaskLen){ data.readBytes(globalLayerMaskData, 0, globalMaskLen);}