Как проверить, существует ли кисть фотошоп программно

Я пытаюсь создать панель Photoshop для некоторых действий, но я хочу знать, как я могу проверить, существует ли кисть в фотошопе, и если она не существует, чтобы вызвать функцию для ее установки до того, как действие можно будет использовать, я уже знаю как его установить и как выполнить действия, но у меня все еще есть некоторые проблемы с определением, существует ли кисть в среде Mac / Windows.

Любые советы о том, как это сделать с помощью Javascript? (JSX)


person ozonostudio    schedule 28.09.2020    source источник


Ответы (1)


Вы можете получить списки предустановок кистей или инструментов, используя этот фрагмент AM. Обратите внимание, что несколько пресетов кистей могут иметь одно и то же имя.

var brushesList = getPresetList(0);
var brushName = 'Preset_55890'

for (var i = 0; i < brushesList.length; i++)
{
  if (brushesList[i] == brushName)
  {
    alert('found');
    break;
  }
}

// presetIndex: 0 to 7
// 0: Brush Presets
// 7: Tool presets

function getPresetList(presetIndex)
{
  var presetNames = [];
  var ref = new ActionReference();
  ref.putProperty(stringIDToTypeID("property"), stringIDToTypeID("presetManager"));
  ref.putEnumerated(stringIDToTypeID("application"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
  var desc = executeActionGet(ref);
  var list = desc.getList(stringIDToTypeID("presetManager"));
  var nameList = list.getObjectValue(presetIndex).getList(stringIDToTypeID("name"));
  for (var nameIndex = 0; nameIndex < nameList.count; nameIndex++)
  {
    presetNames.push(nameList.getString(nameIndex));
  }
  return presetNames;
};
person Sergey Kritskiy    schedule 28.09.2020
comment
Не знаю почему, но скрипт ничего не запускает и ничего не возвращает - person ozonostudio; 29.09.2020
comment
Ну как вы представляете сложно сказать только из этих слов - person Sergey Kritskiy; 30.09.2020