1. 结构信息

1. 图层信息数据区结构信息

长度(单位字节) 描述
4/8 图层信息数据区长度(PSB为8字节),长度必须为偶数,否则追加1个字节“0”
2 图层数量
可变 Layer records: 各个图层记录信息
可变 Channel image data: 通道图像数据。包含每个层的一个或多个图像数据记录,图层的顺序与图层信息中的顺序相同

2. 图层记录信息

包括图层的头信息、蒙版信息、效果图层信息与设置信息,其数据格式如下:

长度(单位字节) 描述
4*4 图层范围,依次是上top, 左left, 底bottom, 右right
2 图层通道数量
2+4/2+8 图层通道头信息
  • 2字节: 图层通道ID。在RGB图像中:0表示R通道,1表示G通道,2表示B通道;在CMYK图像中:0表示C通道,1表示M通道,2表示Y通道,3表示K通道,等等 ;另外 -1表示透明蒙版,-2表示用户颜色通道。
  • 4/8字节:图层通道数据长度(PSB为8字节)。
4 混合模式签名,总是为'8BIM'
4 混合模式类型,混合模式类型定义为:
'pass' = pass (通过),
'norm' = normal(正常),
'diss' = dissolve(溶解),
'dark' = darken(变暗),
'mul ' = multiply(正片叠底),
'idiv' = color burn(颜色加深),
'lbrn' = linear burn(线性加深),
'dkCl' = darker color,
'lite' = lighten(变亮),
'scrn' = screen(滤色),
'div ' = color dodge(颜色减淡),
'lddg' = linear dodge(线性减淡(添加)),
'lgCl' = lighter color,
'over' = overlay(叠加),
'sLit' = soft light(柔光),
'hLit' = hard light(强光),
'vLit' = vivid light(亮光),
'lLit' = linear light(线性光),
'pLit' = pin light(点光),
'hMix' = hard mix(实色混合),
'diff' = difference(差值),
'smud' = exclusion(排除),
'fsub' = subtract,
'fdiv' = divide,
'hue ' = hue(色相),
'sat ' = saturation(饱和度),
'colr' = color(颜色),
'lum ' = luminosity(明度)
1 不透明度, 0为透明,255为不透明
1 剪贴蒙版标记,0 为底板, 1为贴图
1 图层设置标记,每一位为一个标记,由右向左依次为:
a) 0位:透明度保护标记
b) 1位:显示图层标记
c) 2位:停用图层标记
d) 3位:像素数据无关标记(Photoshop 5.0以上)
1 Filler (zero): 图层设置保留标记
4 额外的扩展数据长度(图层蒙版信息数据长度+图层混合颜色带信息数据+图层名称长度+图层附加效果层数据长度)
可变 Layer mask / adjustment layer data (图层蒙版信息数据)
可变 Layer blending ranges data(图层混合颜色带信息数据)
可变 图层名称,Pascal字符串,格式为1个字节的图层名称长度 + 图层名称,图层名称长度必须为4的倍数,如果不足则在末尾补0(这里试过补了就错,不补正常,不晓得为啥)
图层附加效果层数据长度=额外的扩展数据长度 - (图层蒙版信息数据长度+图层混合颜色带信息数据+图层名称长度) 附加效果层数据, 具体查看附件效果层数据

3. Layer mask / adjustment layer data (图层蒙版信息数据)

  • 如果数据长度为20,使用前18个字节,依次为:
  1. 4字节(int):图层蒙版范围top
  2. 4字节(int):图层蒙版范围left
  3. 4字节(int):图层蒙版范围bottom
  4. 4字节(int):图层蒙版范围right
  5. 1字节(byte):蒙版图层的默认颜色(0或255)
  6. 1字节(byte):蒙版图层设置标记,每一位为一个标记,由右向左依次为:
    • 0位:相对于图层的位置标记
    • 1位:关闭图层蒙版标记
    • 2位:混合时反转图层蒙版标记
    • 2字节:保留
  • 如果数据长度为36,不使用前18个字节,依次为:
  1. 前18个字节:不使用
  2. 1字节(byte):蒙版图层设置标记,每一位为一个标记,由右向左依次为:
    • 0位:相对于图层的位置标记
    • 1位:关闭图层蒙版标记
    • 2位:混合时反转图层蒙版标记
  3. 1字节(byte):蒙版图层的默认颜色(0或255)
  4. 4字节(int):图层蒙版范围top
  5. 4字节(int):图层蒙版范围left
  6. 4字节(int):图层蒙版范围bottom
  7. 4字节(int):图层蒙版范围right

4. Layer blending ranges data(图层混合颜色带信息数据)

  1. 4字节:图层混合颜色带信息数据长度,其颜色通道数量 = (数据长度-8字节)/ 8

  2. 4字节: 图层混合颜色带信息中的本图层灰度-前2个字节为黑色,后2个为白色

  3. 4字节: 图层混合颜色带信息中的下一图层灰度-前2个字节为黑色,后2个为白色

  4. 8 * 颜色通道数量字节:图层混合颜色带各个颜色通道图层混合颜色带信息

    • 4字节:图层混合颜色带信息中的本图层灰度-前2个字节为黑色,后2个为白色。
    • 4字节:图层混合颜色带信息中的下一图层灰度-前2个字节为黑色,后2个为白色。