Photoshop пути к линейному - PullRequest
       75

Photoshop пути к линейному

0 голосов
/ 01 апреля 2020

Интересно, возможно ли l oop по пути Photoshop и установить все точки на нем линейными?

В отличие от Illustrator, пути в Photoshop плохо документированы и немного громоздки:

// Switch off any dialog boxes
displayDialogs = DialogModes.ERROR // ERRORS ONLY DialogModes 2

//  create a document to work with
var docRef = app.documents.add(200, 200, 72, "untitled");

// call the source document
var srcDoc = app.activeDocument;

// create the array of PathPointInfo objects
var lineArray = new Array();
lineArray.push(new PathPointInfo());
lineArray[0].kind = PointKind.SMOOTHPOINT;
lineArray[0].anchor = new Array(50, 100); // A
lineArray[0].leftDirection =  [0, 0];
lineArray[0].rightDirection = lineArray[0].anchor;

lineArray.push(new PathPointInfo());
lineArray[1].kind = PointKind.SMOOTHPOINT;
lineArray[1].anchor = new Array(150, 150); // B
lineArray[1].leftDirection = [0, 0];
lineArray[1].rightDirection =  [0, 0];


// create a SubPathInfo object, which holds the line array in its entireSubPath property.
var lineSubPathArray = new Array();
lineSubPathArray.push(new SubPathInfo());
lineSubPathArray[0].operation = ShapeOperation.SHAPEXOR;
lineSubPathArray[0].closed = false;
lineSubPathArray[0].entireSubPath = lineArray;

pathName = "my path";

//create the path item, passing subpath to add method
var myPathItem = docRef.pathItems.add(pathName, lineSubPathArray);

// Set Display Dialogs back to normal
displayDialogs = DialogModes.ALL; // NORMAL


myPath = srcDoc.pathItems.getByName(pathName);
var subPathCount = myPath.subPathItems.length; // Count of subpaths

var msg = "";

msg += subPathCount + " path(s)\n";


for (var i = 0; i < myPath.subPathItems.length; i++)
{
  msg += myPath.subPathItems[i] + "\n";
}

alert(msg);

Во-первых, мне трудно получить доступ к элементам subPathItems после того, как я создал путь. Во-вторых, я не знаю, какие настройки для касательных (.leftDirection, .rightDirection) предназначены для линейного пути.

Кроме того, это персиковый;)

...