2016-03-23 92 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
相關問題