2015-10-16 43 views
1

我知道這已經被回答以前爲一組組(https://graphicdesign.stackexchange.com/questions/30768/combinations-and-permutations-of-photoshop-layers),但是我在執行這個可變數量的組時有困難。使用JavaScript在Photoshop中保存每個置換

我的總體目標是能夠保存/導出圖層的每個排列,而不管組數。

IE,如果我的層結構是這樣(所有的下面是layerSets的):

options 
--one 
----a 
----b 
----c 
--two 
----1 
----2 
----3 
background 
--base 
--top 

我需要保存圖像爲A1,A2,A3,B1,B2 B3,C1,C2和c3,每個都有獨立的名字,同時仍然保持背景組不變。

我遇到的問題有時會有7種不同的選項,下面有5種不同的選擇,有時會有3種選項,下面有多種選擇。

任何幫助將非常感激,因爲我絞盡腦汁試圖解決這個問題已經有一段時間了。

+0

您鏈接的代碼使用'app.activeDocument.artLayers.length'來獲取圖層的數量;您必須檢查文檔以獲取層組數量的類似方法;像'app.activeDocument.artLayerGroups.length'可能嗎? – m69

+0

我發現使用'app.activeDocument.layerSets.getByName(「options」)。layerSets.length'返回選項下的圖層組數量,'app.activeDocument.layerSets.getByName(「options」)。layerSets [i] .layerSets.length'(我是相關索引)返回相關子選項下的圖層組數量。 – MCMXCII

+0

這應該爲您提供生成排列所需的所有信息。對於固定數量的主集(如「one」和「two」),使用貫穿選項(a,b,c ...和1,2,3 ...)的嵌套循環;對於一個可變數字(如果可以有一個「三」,「四」......)使用遞歸算法。 – m69

回答

1

您鏈接的代碼使用app.activeDocument.artLayers.length來獲取圖層的數量;正如你發現的那樣,有一種類似的方法來獲取圖層集,app.activeDocument.layerSets和一種獲取嵌套集的方法app.activeDocument.layerSets.getByName("options").layerSets
這些應該使您能夠檢索遍歷圖層結構並生成排列所需的所有信息。

要在固定數量的集合中切換圖層的可見性(例如,在您的示例中爲「one」和「two」),請使用嵌套循環來遍歷每個集合的選項(a,b,c .. ...和1,2,3 ...)。

對於可變數量的集合(如果可以有「三個」,「四個」...)使用循環遍歷第一個集合的選項的遞歸算法,並且對於每個選項遞歸循環遍歷每個以下設置的選項。

相關問題