2016-03-23 51 views
1

我试图从一个C#项目中的psd文件中获取图层信息。如何在PSD文件中获取图层关系或组信息?

通过使用PSD插件Paint.Net或MagickImage,我能够得到的位置,大小,内容和每层的一些视觉性能。

但我找不到可以说明图层关系的属性或函数。

有没有办法找出哪一层是另一层的父层?或者哪一层与另一层相同?

回答

0

使用Paint.Net的PSD插件,可以从每个图层的AdditionalInfo中找到图层关系。

  1. PSDFile.Layers包含有序层的列表(逆序与Photoshop相比)
  2. FOREACH层,如果它在其AdditionalInfo酒店有LayerSectionInfo,那么它是用于重新创建层树的重要节点。
  3. 找出Layer.AdditionalInfo [LayerSectionInfo] .SectionType的LayerSectionType。
    • 如果是OpenFolder或ClosedFolder,那么它是一个父层和一个开放标记,它是它的子层之后的层;
    • 如果是SectionDivider,那么它是一个关闭标签层,指示当前图层组的结束;
    • 如果LayerSectionInfo不存在,那么它是一个普通的层节点。

例如,层看起来像这样:

(OF为OpenFolder,L(SD)为层,其是SectionDivider)

[A(OF),A0,A1( OF),A10,L(SD),L(SD),B(OF),B0(OF),B00,L(SD),B1,L(SD)]

可以转换为此层树:

    • A0
    • A1
      • A10
    • B0
      • B00
    • B1
相关问题