画像にパスを追加するニーズがありました(コマ毎の切り出し)。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));