三日月館【別館】開発・制作Tips集

[Photoshop] ExtendScriptでレイヤーを指定した座標へ移動させる

最終更新:

fumiduki1985

- view
管理者のみ編集可
ArtLayerオブジェクトには、相対値を指定して移動させるtranslate()メソッドがあるが、絶対座標を指定して移動させるメソッドは存在しない。
そのため、あらかじめboundsフィールドを使って相対的な移動量を計算し、translate()メソッドを使う必要がある。
下記方法だと、レイヤーの描画範囲の左上が、指定した座標に合うようになる。

記述例:
var posX = 10.0; // 移動先の絶対座標(X)
var posY = 20.0; // 移動先の絶対座標(Y)

var bounds = layer.bounds;
var moveX = posX - parseFloat(bounds[0]); // 相対移動量を計算(boundsのパースに注意)
var moveY = posY - parseFloat(bounds[1]); // 相対移動量を計算(boundsのパースに注意)
layer.translate(moveX, moveY); 


このページのタグ一覧
ExtendScript Photoshop プログラミング

記事メニュー
ウィキ募集バナー