Je sais que cela a déjà été répondu pour un certain nombre de groupes (https://graphicdesign.stackexchange.com/questions/30768/combinations-and-permutations-of-photoshop-layers), mais j'ai eu du mal à l'implémenter pour un nombre variable de groupes.Enregistrement de toutes les permutations dans Photoshop en utilisant JavaScript
Mon objectif global est de pouvoir sauvegarder/exporter toutes les permutations de couches, quel que soit le nombre de groupes.
IE, si ma structure de couche était en tant que telle (tous les ci-dessous sont LayerSets):
options
--one
----a
----b
----c
--two
----1
----2
----3
background
--base
--top
je aurais besoin d'enregistrer des images pour a1, a2, a3, b1, b2 b3, c1, c2 et c3, chacun avec des noms individuels, tout en conservant le groupe d'arrière-plan intact. Le problème que j'ai est parfois il y aura 7 options différentes avec 5 choix différents ci-dessous et parfois il y aura 3 options avec un certain nombre de choix ci-dessous.
Toute aide serait très appréciée car j'ai creusé mon cerveau en essayant de résoudre ce problème depuis un certain temps maintenant.
Le code que vous avez lié utilise 'app.activeDocument.artLayers.length' pour obtenir le nombre de couches; vous devrez vérifier la documentation pour obtenir le même nombre de groupes de calques; quelque chose comme 'app.activeDocument.artLayerGroups.length' peut-être? – m69
J'ai trouvé qu'en utilisant 'app.activeDocument.layerSets.getByName (" options "). LayerSets.length' renvoie le nombre de groupes de calques sous options, et' app.activeDocument.layerSets.getByName ("options"). LayerSets [i] .layerSets.length' (i étant l'index approprié) renvoie le nombre de groupes de calques sous la sous-option correspondante. – MCMXCII
Cela devrait vous donner toutes les informations dont vous avez besoin pour générer les permutations. Pour un nombre fixe d'ensembles principaux (comme "un" et "deux"), utilisez des boucles imbriquées qui parcourent les options (a, b, c ... et 1, 2, 3 ...); pour un nombre variable (s'il peut y avoir un "trois", "quatre" ...), utilisez un algorithme récursif. – m69