Photoshopを動かすJavaScriptを実際に書いてみよう

こんにちは、PhotoshopperJPです。

前回の記事でPhotoshopJavaScriptで操作すると
楽することができることがわかったと思います。

さてそれでは、実際に書いてみて、実際に動かしてみましょう。

用意するもの

テキストエディタ
Photoshop

これから作るプログラム

Hello Worldスクリプト

  1. Photoshopを開く
  2. 新規ファイルを作成します
  3. テキストレイヤーを作成します
  4. テキストレイヤーに「Hello World」と設定します。

手順1 アプリケーションの起動の記述


#target photoshop;


説明:
PhotoshopではJavaScriptに基づいて、Adobe社が開発した
ExtendScriptというスクリプト言語が使用されています。
ExtendScriptの「#target」というコマンドを使用すると
指定したアプリケーションを起動することができます。

手順2 新規ファイルを作成する


//手順1ここまで
#target photoshop
//手順1ここから

//手順2ここから
var originalUnit = preferences.rulerUnits;
preferences.rulerUnits = Units.INCHES;

var docRef = app.documents.add(2,4);
//手順2ここまで

説明:
新規ドキュメントを作る際に単位を決める必要があります。
「preferences.rulerUnits = Units.INCHES」は単位を
「インチ」に設定しています。

「app.documents.add(2,4)」で2×4インチのドキュメントを
作成する命令をここでは書きました。

これをピクセル単位にしたいときは、「= Units.PIXELS」
これをポイント単位にしたいときは、「= Units.POINTS」
になります。

手順3 レイヤーを作成する


//手順1ここまで
#target photoshop
//手順1ここから

//手順2ここから
var originalUnit = preferences.rulerUnits;
preferences.rulerUnits = Units.INCHES;
var docRef = app.documents.add(2,4);
//手順2ここまで


//手順3ここから
var artLayerRef = docRef.artLayers.add();
artLayerRef.kind = LayerKind.TEXT;
//手順3ここまで

説明:
作成したドキュメントにレイヤーを作成します。
「docRef.artLayers.add();」
しかし、この状態だとテキストレイヤーなのか
調整用レイヤーなのかわかりません。
ですので次の行でレイヤーの種類を設定して上げます。
「LayerKind.TEXT」

テキストレイヤー以外を設定したい場合
「LayerKind」以下は次の数だけ選ぶことが出来ます。
BLACKANDWHITE
BRIGHTNESSCONTRAST
CHANNELMIXER
COLORBALANCE
CURVES
EXPOSURE
GRADIENTFILL
GRADIENTMAP
HUESATURATION
INVERSION
LEVELS
NORMAL
PATTERNFILL
PHOTOFILTER
POSTERIZE
SELECTIVECOLOR
SMARTOBJECT
SOLIDFILL
TEXT
THRESHOLD
LAYER3D
VIBRANCE
VIDEO

手順4 テキストレイヤーに「Hello World」と設定する


//手順1ここまで
#target photoshop
//手順1ここから
//手順2ここから
var originalUnit = preferences.rulerUnits;
preferences.rulerUnits = Units.INCHES;
var docRef = app.documents.add(2,4);
//手順2ここまで
//手順3ここから
var artLayerRef = docRef.artLayers.add();
artLayerRef.kind = LayerKind.TEXT;
//手順3ここまで

//手順4ここから
var textItemRef = artLayerRef.textItem;
textItemRef.contents = "Hello, World";
//手順4ここまで

説明:
テキストアイテムを設定します。
「artLayerRef.textItem」
任意の文字を入力するには次のように書きます。
「textItemRef.contents = "Hello, World";」

ここの「Hello World」を別の文章にすれば
別の文章を入力することが出来ます。

プログラムを工夫すれば外部ファイルのテキストを順に読み込んで
レイヤー別に自動入力するなどということが可能になります。

最後に後始末をする


//手順1ここまで
#target photoshop
//手順1ここから
//手順2ここから
var originalUnit = preferences.rulerUnits;
preferences.rulerUnits = Units.INCHES;
var docRef = app.documents.add(2,4);
//手順2ここまで
//手順3ここから
var artLayerRef = docRef.artLayers.add();
artLayerRef.kind = LayerKind.TEXT;
//手順3ここまで

//手順4ここから
var textItemRef = artLayerRef.textItem;
textItemRef.contents = "Hello, World";
//手順4ここまで

//後始末ここから
docRef = null
artLayerRef = null
textItemRef = null
app.preferences.rulerUnits = originalUnit
//後始末ここまで

説明:
最後にメモリの解放をしてあげましょう。
また、手順1で設定したINCHESの設定を
元のオリジナルの設定に戻してあげましょう。

JSXで保存する

ファイルを、.jsx という拡張子のテキストファイルとして
保存をしてあげます。これでファイルをダブルクリックするだけで
Photoshopが起動して、2×4インチのドキュメントに「Hello, World」
というテキスト入力するスクリプトファイルができあがりました。

スポンサーリンク