C# 如何在psd文件中获取图层关系或组信息?

C# 如何在psd文件中获取图层关系或组信息?,c#,imagemagick,layer,psd,paint.net,C#,Imagemagick,Layer,Psd,Paint.net,我试图在一个C#项目中从psd文件中获取图层信息 通过使用用于Paint.Net或MagickImage的PSD插件,我能够获得每个层的位置、大小、内容和一些视觉特性 但是我找不到可以告诉层之间关系的属性或函数 有没有办法找出哪一层是另一层的父层?或者哪一层与另一层在同一组中?使用用于Paint.Net的PSD插件,可以从每个层的附加信息中找到层关系 图层包含有序的图层列表(与PhotoShop的顺序相反) 对于每个层,如果它的AdditionalInfo属性中有LayerSectionInfo

我试图在一个C#项目中从psd文件中获取图层信息

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

但是我找不到可以告诉层之间关系的属性或函数


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

使用用于Paint.Net的PSD插件,可以从每个层的附加信息中找到层关系

  • 图层包含有序的图层列表(与PhotoShop的顺序相反)
  • 对于每个层,如果它的AdditionalInfo属性中有LayerSectionInfo,则它是重新创建层树的重要节点
  • 查找Layer.AdditionalInfo[LayerSectionInfo的索引].SectionType的LayerSectionType。
    • 如果它是OpenFolder或ClosedFolder,则它是父层和打开标记,后面的层是它的子层
    • 如果它是SectionDivider,则它是表示当前图层组结束的闭合标记图层
    • 如果LayerSectionInfo不存在,则它是一个公共层节点
  • 例如,图层如下所示:

    (对于OpenFolder,L(SD)表示为截面分隔器的层)

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

    可以转换为此图层树:

    • A
      • A0
      • A1
        • A10
    • B
      • B0
        • B00
      • B1

    使用Paint.Net的PSD插件,可以从每个层的附加信息中找到层关系

  • 图层包含有序的图层列表(与PhotoShop的顺序相反)
  • 对于每个层,如果它的AdditionalInfo属性中有LayerSectionInfo,则它是重新创建层树的重要节点
  • 查找Layer.AdditionalInfo[LayerSectionInfo的索引].SectionType的LayerSectionType。
    • 如果它是OpenFolder或ClosedFolder,则它是父层和打开标记,后面的层是它的子层
    • 如果它是SectionDivider,则它是表示当前图层组结束的闭合标记图层
    • 如果LayerSectionInfo不存在,则它是一个公共层节点
  • 例如,图层如下所示:

    (对于OpenFolder,L(SD)表示为截面分隔器的层)

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

    可以转换为此图层树:

    • A
      • A0
      • A1
        • A10
    • B
      • B0
        • B00
      • B1