JavaScriptでPhotoshopを操作するぞ!!

お久しぶりです。PhotoshopperJPです。

これからしばらくPhotoshopをJavaScriptで操作する方法についての
方法を書いていこうと思います。

この記事の目的を書いておきます。

目的:自分用のメモ+アクションで出来ないような作業を出来るようにする。

目次

  1. JavaScriptでPhotoshopを操作するぞ!!
  2. 実際に書いてみよう
  3. 未定
  4. 未定
  5. 未定

アクションではなく、スクリプトでやる理由は?

だいたいのことはアクションですることができます。
そもそもPhotoshopをアクションではなくスクリプトでやる理由はなぜでしょう?

条件によって処理を変えることができる

スクリプトでは条件判断のロジックを追加して、
判断を自動的に行わせることができます。
※クリエイティブクラウド版のPhotoshopCS6では
アクションで「条件を挿入」出来る機能追加されていますが
その条件も限られています。

複数のアプリケーションに対するアクションを、1つのスクリプトで実行できる。

例えば、Photoshopとillustratorを連携して作成するようなものを作ることができます。
スクリプトでは、ファイルを開いたり、保存したり、名前の変更を行ったりできます。
アクションではファイルの場所が固定ですが、ファイルパスを変数に使用ができます。

文字のサイズをランダムにしたいときなど楽にできる

たとえば
「数字をサイズ違いでランダムに配置したい」
という作業があったとします。

1,2,3,4,5,6,7…
と順に文字を大きくする際、手作業だと

1→サイズ変更&移動→2→サイズ変更&移動と結構手間です。

ですが、プログラムですと次のようなスクリプトを書くことで
実現することができます。

#target Photoshop

var startRulerUnits = app.preferences.rulerUnits;
var startTypeUnits  = app.preferences.typeUnits;

startRulerUnits = Units.PIXELS;
startTypeUnits  = TypeUnits.POINTS;

var width  = 800;
var height = 200;
var dpi    = 72;

var doc = app.documents.add(width,height,dpi);


app.activeDocument = doc;

var i;
for (i = 1; i < 50; i++){
	var newLayerRef = doc.artLayers.add();
	newLayerRef.name = "Number"+i;
	newLayerRef.kind = LayerKind.TEXT;
	var textItemRef = doc.artLayers["Number"+i].textItem;
    var x = Math.random(800);
    var y = Math.random(200);
	textItemRef.contents += i;
    textItemRef.position = Array(1000*y,100*x);
	textItemRef.size= 32 * x;
    textItemRef.justification = Justification.CENTERJUSTIFIED;
}

複雑なものや、機械的な作業はプログラムを組んで楽をしていきましょう。


では次回は基本的な書き方の説明をしていきたいと思います。

スポンサーリンク