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