Комбинации и перестановки слоев Photoshop?

Этот большой

У меня есть документ Photoshop, в котором есть 8 слоев. Мне нужно создать способ использования этих 8 слоев и создания определенных комбинаций в зависимости от приведенных ниже правил...

Пример:

{1,2,3} {1,2,4} {1,2,5} {1,2,6} {1,2,7} {1,2,8} {1,3,4} {1,3,5} {1,3,6} {1,3,7} {1,3,8} {1,4,5} {1,4,6} {1,4,7} {1,4,8} {1,5,6} {1,5,7} {1,5,8} {1,6,7} {1,6,8} {1,7,8} {2,3,4} {2,3,5} {2,3,6} {2,3,7} {2,3,8} {2,4,5} {2,4,6} {2,4,7} {2,4,8} {2,5,6} {2,5,7} {2,5,8} {2,6,7} {2,6,8} {2,7,8} {3,4,5} {3,4,6} {3,4,7} {3,4,8} {3,5,6} {3,5,7} {3,5,8} {3,6,7} {3,6,8} {3,7,8} {4,5,6} {4,5,7} {4,5,8} {4,6,7} {4,6,8} {4,7,8} {5,6,7} {5,6,8} {5,7,8} {6,7,8}

Используя приведенную выше комбинацию, каждую комбинацию необходимо сохранить как изображение. ТАК, если вы возьмете одну из приведенных выше комбинаций, например, {3,6,8}. Photoshop должен использовать слои 3,6,8 для создания нового изображения или слоя, состоящего из этих трех сегментов.

Не уверен, как начать это. До сих пор я разработал все возможные комбинации, используя этот замечательный сайт:

http://www.mathsisfun.com/combinatorics/combinations-permutations-calculator.html


person user3323371    schedule 07.05.2014    source источник
comment
должен любить дискретную математику   -  person SnakeDoc    schedule 08.05.2014


Ответы (2)


Вы можете написать сценарий для отключения ненужных слоев, а затем сохранить его в новый файл.

чтобы отключить слой:

var doc = app.activeDocument;
var lyr = doc.artLayers[index];
lyr.visible = false;

Объект документа имеет метод «сохранить как», который вы можете использовать для указания типа файла и местоположения, которые вам нужны для вывода.

Дополнительную информацию можно найти в справочнике Photoshop Javascript в формате pdf в каталоге установки Photoshop.

person Anna Forrest    schedule 07.05.2014

Эта функция будет делать то, что вы хотите:

gimmeTheseLayers("3", "5", "spoon");

function gimmeTheseLayers(l1, l2, l3)
{
  for (var i = 0; i < numOfLayers -1; i++)
  {
   // look for the appropriate layer
   var l = app.activeDocument.layers[i];
   if (l.name == l1 || l.name == l2 || l.name == l3) l.visible = true;
   else l.visible = false;

   // keep the background layer on
   if (l.isBackgroundLayer == true) l.visible = true;
 }

}

Просто дайте ему имя слоя (в кавычках), и он сохранит эти слои видимыми, он отключит все остальное, кроме фона. Не работает с наборами слоев!

person Ghoul Fool    schedule 12.05.2014