【Photoshop】レイヤーを指定(選択)するスクリプト | Blue-Scre{7}n.net | よそいちのDTPメモ

トップページ » Photoshop » 【Photoshop】レイヤーを指定(選択)するスクリプト

【Photoshop】レイヤーを指定(選択)するスクリプト

公開日:2018年4月28日 

 実際に選択状態になるわけではなくスクリプトで指定したレイヤーに対しremove()rotate()などのメソッドで何かする、という動作になります。

1.配列から選択

var doc=app.activeDocument;
var lay=doc.artLayers[0];
alert(lay);

 artLayers、layersはコレクションオブジェクトで、[レイヤー]パネルにあるレイヤーが格納されています。いちばん上が0番目となっているので、このスクリプトだと「いちばん上のレイヤー」を指しています。


2.名前で選択

var doc=app.activeDocument;
var lay=doc.artLayers.getByName("レイヤー 4");
alert(lay);

 artLayersオブジェクトの中から、「レイヤー4」という名称のレイヤーを指定します。同じ名称のレイヤーがある場合は、いちばん上にある「レイヤー4」が指定されます。


3.現在選択しているレイヤー

var doc=app.activeDocument;
var lay=doc.activeLayer;
alert(lay);

 こちらは、「[レイヤー]パネルで選択されているレイヤー」が指定されます。複数選択していた場合はコレクションオブジェクトにならず、「選択しているレイヤーの中でいちばん上にあるもの」が指定されます。


4.選択しているレイヤーがテキストレイヤーだった場合、ドキュメントサイズを書き込む

var doc=app.activeDocument;
var sizes=[doc.width,doc.height];
var lay=doc.activeLayer;
if(lay.kind == LayerKind.TEXT){
    lay.textItem.contents="幅"+sizes[0]+"、"+"高さ"+sizes[1];
}else{
};

 こちらは、「[レイヤー]パネルで選択されているレイヤー」がテキストレイヤーの場合、そのレイヤーに幅、高さのドキュメントサイズを書き込みます。


5.実践

 今回は「不透明度81%未満のレイヤーにぼかし処理」してみましょう。

var doc=app.activeDocument;
var lays=doc.artLayers;
var layCount=lays.length;
for(var i=layCount-1; i > -1; i--){
  if(lays[i].opacity < 81){
    lays[i].applyGaussianBlur(25);//ぼかし(ガウス)、半径25px
  }
}

 activeLayerの挙動を考えると[レイヤー]パネルで複数選択しているものに何かする、というのはScriptingListenerを使わないとできないので、「レイヤーそれぞれの設定値を条件にしてひとつずつ処理」を繰り返すコードにしています。

スクリプト実行前
スクリプト実行前


スクリプト実行後
スクリプト実行後


動画


ダウンロード

サンプルファイル(.psdファイル)

スクリプト



タグ: | 


広告