Photoshopで選択範囲を操作するjavaScriptを紹介します。
この記事で言うところの、選択範囲の操作とは以下のものを指します。
- 選択範囲の解除
- 全選択
- 選択範囲の反転
- 座標を指定して選択範囲を作成
- 選択範囲をパスに変換
- 選択範囲のサイズを取得する
- 選択範囲を移動する
- 選択範囲のカット
- 選択範囲を消去
選択範囲の解除
選択範囲を解除するにはdeselect()メソッドを使います。
サンプルコード1
1 |
app.activeDocument.selection.deselect(); |
全選択
全選択をするにはselectAll()メソッドを使います。
サンプルコード2
1 |
app.activeDocument.selection.selectAll(); |
選択範囲の反転
選択範囲の反転をするにはinvert()メソッドを使います。
サンプルコード3
1 |
app.activeDocument.selection.invert(); |
座標を指定して選択範囲を作成
座標を指定して選択範囲を作成するにはselect()メソッドを使います。
最初のパラメータには座標を指定します。
2番目以降のパラメータは省略可能です。
2番目のパラメータは選択方法を指定できます。
- SelectionType.REPLACE 新規作成
- SelectionType.DIMINISH 現在の選択範囲から一部削除
- SelectionType.EXTEND 現在の選択範囲に追加
- SelectionType.INTERSECT 現在の選択範囲との共通範囲
3番目のパラメータはぼかし幅です。
4番目のパラメータはアンチエイリアスついて指定します。
trueを指定するとアンチエイリアス処理がされ、falseの指定では処理がされません。
サンプルコード4
1 2 3 4 5 6 7 8 |
var rectangle = [ [20, 30], [300, 30], [300, 200], [20, 200] ]; app.activeDocument.selection.select(rectangle, SelectionType.REPLACE, 0, true); |
サンプルコード4では四角形を作成しています。三角形を作成する場合はサンプルコード5のようになります
サンプルコード5
1 2 3 4 5 6 7 |
var triangle = [ [20, 30], [300, 30], [300, 200] ]; app.activeDocument.selection.select(triangle, SelectionType.REPLACE, 0, true); |
選択範囲をパスに変換
選択範囲をパスに変換するにはmakeWorkPath()メソッドを使います。
サンプルコード6
1 |
app.activeDocument.selection.makeWorkPath(); |
選択範囲のサイズを取得する
選択範囲のサイズを取得するにはboundsメソッドを使います。
サンプルコード7
1 2 3 4 5 6 7 |
var rectangle = app.activeDocument.selection.bounds; var left = rectangle[0]; var top = rectangle[1]; var right = rectangle[2]; var bottom = rectangle[3]; alert("左の座標は" + left + ",上の座標は" + top + ",右の座標は" + right + ",下の座標は"+ bottom + "です。"); |
選択範囲を移動する
選択範囲を移動するtranslateBoundary() メソッド を 使い ます。
translateBoundary()メソッドの最初のパラメータは横方向、2番目のパラメータには縦方向の移動量を指定します。
サンプルコード8
1 2 3 4 |
var move_x = UnitValue("10px"); var move_y = UnitValue("20px"); app.activeDocument.selection.translateBoundary(move_x, move_y); |
選択範囲のカット
選択範囲のカットはcut()メソッドを使用します。
サンプルコード9
1 |
app.activeDocument.selection.cut(); |
選択範囲を消去
選択範囲の消去にはclear()メソッドを使用します。
サンプルコード10
1 |
app.activeDocument.selection.clear(); |
コメントの書き込み