Я пытаюсь обновить скрипт, который раньше работал в Photoshop CS4, но который, кажется, полностью игнорирует единицы, которые я использую в облаке. Сценарий ниже должен создать слой пути с двумя линиями, которые образуют X по всему документу.
Для проверки я создаю новую страницу размером 8,5 x 11 дюймов и разрешением 300 точек на дюйм. Затем я запускаю сценарий. Однако создаваемая форма огромна, и большая ее часть находится за кадром. (Я попробовал трюк, когда вы сначала изменяете размер страницы, чтобы иметь разрешение 72 DPI, и хотя это действительно центрирует мои пути на странице, они намного меньше, чем должны быть. Я также беспокоюсь, что изменение размера может повредить данные в других слоях.)
Что я делаю не так?
function Point(x, y)
{
this.x = x;
this.y = y;
}
function addVertexCorner(lineArray, x, y)
{
var p0Info = new PathPointInfo();
lineArray.push(p0Info);
p0Info.kind = PointKind.CORNERPOINT;
p0Info.anchor = new Array(x, y);
p0Info.leftDirection = p0Info.anchor;
p0Info.rightDirection = p0Info.anchor;
}
function appendLine(p0, p1, lineSubPathArray)
{
var lineArray = new Array();
addVertexCorner(lineArray, p0.x, p0.y);
addVertexCorner(lineArray, p1.x, p1.y);
var pathInfo = new SubPathInfo();
lineSubPathArray.push(pathInfo);
pathInfo.operation = ShapeOperation.SHAPEADD;
pathInfo.closed = false;
pathInfo.entireSubPath = lineArray;
}
function createPathLayer(title, subPathArray)
{
var docRef = app.activeDocument;
var originalUnit = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
var myPathItem = docRef.pathItems.add(title, subPathArray);
app.preferences.rulerUnits = originalUnit;
}
var docRef = app.activeDocument;
var imgWidth = docRef.width.as("px");
var imgHeight = docRef.height.as("px");
var p00 = new Point(0, 0);
var p10 = new Point(imgWidth, 0);
var p01 = new Point(0, imgHeight);
var p11 = new Point(imgWidth, imgHeight);
var lineSubPathArray = new Array();
appendLine(p00, p11, lineSubPathArray);
appendLine(p01, p10, lineSubPathArray);
createPathLayer("Big X", lineSubPathArray);