Render.ru

photoshop скрипт

Erik_945

Знаток
Рейтинг
36
#1
Недавно узнал о существовании своего скриптового языка для фотошопа. Задачка в следующем - у меня есть последовательность координат точек, которые надо соединить текущей кистью (как с шифтом покликать).
Возможно ли это сделать, и если да, то как?
Как вариант - создать контур по этим же точкам, а затем обвести.
 

Cherednick

Мастер
Рейтинг
207
#2
Создаем текстовый файл, в котором будут координаты через пробел, каждая пара на своей строке, например:

200 300
400 600
700 800

Фотошоп должен запускаться от имени администратора.


// Ставим размернсть документа в пикселях
app.preferences.rulerUnits = Units.PIXELS;
app.preferences.typeUnits = TypeUnits.PIXELS;
var docRef = app.activeDocument;
var i = 0;
// Открываем файл
var CoordFile = File.openDialog();
CoordFile.open("r");

// Создаем массив точек
var lineArray = new Array();

// Пересчитываем из файла в массив точек
while (CoordFile.eof == false) {
XY = CoordFile.readln().split(" ");
lineArray = new PathPointInfo;
lineArray.kind = PointKind.CORNERPOINT;
lineArray.anchor = Array (parseInt(XY[0]) , parseInt(XY[1]));
lineArray.leftDirection = lineArray[0].anchor;
lineArray.rightDirection = lineArray[0].anchor;
i++;
}
CoordFile.close();

// Делаем из всего этого закрытый шейп
var lineSubPathArray = new Array();
lineSubPathArray[0] = new SubPathInfo();
lineSubPathArray[0].operation = ShapeOperation.SHAPEXOR;
lineSubPathArray[0].closed = true;
lineSubPathArray[0].entireSubPath = lineArray;

//Создаем путь
var myPathItem = docRef.pathItems.add("ffg", lineSubPathArray);

//Рисуем по нему контур
myPathItem.strokePath(ToolType.BRUSH);
 

Вложения

Сверху