Я пытаюсь написать сценарий для автоматизации процесса извлечения цветов из нескольких слоев заливки из файла Photoshop, который мы настраиваем в зависимости от использования. Проблема в том, что не существует способа прочитать цвет, назначенный слою-заливке.
Я пробовал все, что мог придумать, но ничего не сработало. Это самое близкое, что я получил до сих пор:
На этом форуме я нашел способ читать значения и имена образцов . Я использовал плагин Scripting Listener для записи действий, но все, что я получаю, это что-то вроде этого, если дважды щелкнуть миниатюру слоя заливки и нажать «Добавить в образцы»:
var idMk = charIDToTypeID( "Mk " );
var desc90 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref42 = new ActionReference();
var idClrs = charIDToTypeID( "Clrs" );
ref42.putClass( idClrs );
desc90.putReference( idnull, ref42 );
var idUsng = charIDToTypeID( "Usng" );
var desc91 = new ActionDescriptor();
var idNm = charIDToTypeID( "Nm " );
desc91.putString( idNm, """Swatch 3""" );
var idClr = charIDToTypeID( "Clr " );
var desc92 = new ActionDescriptor();
var idRd = charIDToTypeID( "Rd " );
desc92.putDouble( idRd, 229.000397 );
var idGrn = charIDToTypeID( "Grn " );
desc92.putDouble( idGrn, 137.001801 );
var idBl = charIDToTypeID( "Bl " );
desc92.putDouble( idBl, 135.997925 );
var idRGBC = charIDToTypeID( "RGBC" );
desc91.putObject( idClr, idRGBC, desc92 );
var idClrs = charIDToTypeID( "Clrs" );
desc90.putObject( idUsng, idClrs, desc91 );
executeAction( idMk, desc90, DialogModes.NO );
То есть я получаю конкретные значения, которые я выбираю в то время, но не могу реализовать это в цикле (по крайней мере, я могу придумать).
Кроме того, если я смогу найти способ сделать каждый цвет слоя заливки по очереди цветом переднего плана, тогда я знаю, что могу это прочитать, но как мне этого добиться? Пипетка кажется вариантом, но я не могу придумать, как заставить ее работать.
Любые идеи?