画像にパスを追加するニーズがありました(コマ毎の切り出し)。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)の画像に対して、解像度によって、範囲が異なる!


96dpiの画像だと、範囲が一回り大きくなっている。
色々調べてみたら、どうやらパスの各点の座標は、72dpiベース単位=pixel ※但し、整数じゃなくてもOKものだ!
よって、点の座標を計算する時、x*72/現画像のdpiの計算が正しい。
pointObjs.push(addPathPoint(points[i][0] * 72 / dpi, points[i][1] * 72 / dpi));