使用 JavaScript 在 Photoshop 中保存每个排列

Saving every permutation in Photoshop using JavaScript

我知道之前已经针对一定数量的组 (https://graphicdesign.stackexchange.com/questions/30768/combinations-and-permutations-of-photoshop-layers) 回答了这个问题,但是我在为可变数量的组实施此方法时遇到了问题。

我的总体 objective 是能够 save/export 层的每个排列,无论组数如何。

即,如果我的层结构是这样的(以下所有都是层集):

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

我需要为 a1、a2、a3、b1、b2、b3、c1、c2 和 c3 保存图像,每个图像都有单独的名称,同时仍然保持背景组不变。

我遇到的问题是有时会有 7 个不同的选项,下面有 5 个不同的选择,有时会有 3 个选项,下面有很多选择。

任何帮助将不胜感激,因为我已经绞尽脑汁试图解决这个问题很长一段时间了。

您链接的代码使用app.activeDocument.artLayers.length获取层数;正如您所发现的,有一种获取层集的类似方法 app.activeDocument.layerSets 和一种获取嵌套集的方法 app.activeDocument.layerSets.getByName("options").layerSets.
总之,这些应该使您能够检索遍历层结构和生成排列所需的所有信息。

要在固定数量的集合中切换图层的可见性(例如您的示例中的 "one" 和 "two"),请使用 运行 通过每个选项的嵌套循环集合(a、b、c ... 和 1、2、3 ...)。

对于可变数量的集合(如果可以有 "three"、"four" ...)使用递归算法,循环遍历第一组的选项,并为每个选项递归循环遍历每个后续集合的选项。