画像にパスを追加するニーズがありました(コマ毎の切り出し)。PIL、opencvなどでは、簡単にできるが、範囲の微調整が必要なので、コマ毎の切り出す範囲(座標List)をPhotoshopのパスオブジェクトとして追加し、微調整してから、一括切り出すやりかたにした。コードはシンプルです。
app.preferences.rulerUnits = Units.PIXELS;
var doc = app.activeDocument;
var dpi = doc.resolution;
//
var pointObjs = [];
var points = [[100, 100], [100, 300], [500, 300], [500, 100]];
for (var i = 0, len = points.length; i < len; i++) {
pointObjs.push(addPathPoint(points[i][0], points[i][1]));
}
//
var pathObj = [];
pathObj[0] = new SubPathInfo();
pathObj[0].operation = ShapeOperation.SHAPEADD;
pathObj[0].closed = true;
pathObj[0].entireSubPath = pointObjs;
doc.pathItems.add("1", pathObj);
//
function addPathPoint(x, y) {
var pObj = new PathPointInfo();
pObj.kind = PointKind.CORNERPOINT;
pObj.anchor = [x, y];
pObj.leftDirection = [x, y];
pObj.rightDirection = [x, y];
return pObj;
}
ですが、同じサイズ(例は600px*600px)の画像に対して、解像度によって、範囲が異なる!
pointObjs.push(addPathPoint(points[i][0] * 72 / dpi, points[i][1] * 72 / dpi));


