Как создать путь, соответствующий границам страницы, с помощью javascript Photoshop?

Я пытаюсь обновить скрипт, который раньше работал в 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);

person kitfox    schedule 02.04.2014    source источник


Ответы (1)


Догадаться. Мне нужно было выполнить повторную выборку с разрешением 72 ppi и использовать ResampleMethod.NONE.

http://forums.adobe.com/thread/1441545

person kitfox    schedule 06.04.2014