【发布时间】:2014-04-02 18:31:51
【问题描述】:
我正在尝试更新曾经在 Photoshop CS4 中工作但似乎完全忽略了我在 Cloud 中使用的单元的脚本。下面的脚本应该创建一个路径层,其中两行在整个文档中形成一个 X。
为了进行测试,我正在创建一个 8.5 x 11 英寸和 300 DPI 的新页面。然后我运行脚本。但是,产生的形状很大,而且大部分都在屏幕外。 (我已经尝试过将页面大小调整为首先具有 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);
【问题讨论】:
标签: javascript path photoshop bounds