お久しぶりです。PhotoshopperJPです。
これからしばらくPhotoshopをJavaScriptで操作する方法についての
方法を書いていこうと思います。
この記事の目的を書いておきます。
目的:自分用のメモ+アクションで出来ないような作業を出来るようにする。
目次
- JavaScriptでPhotoshopを操作するぞ!!
- 実際に書いてみよう
- 未定
- 未定
- 未定
アクションではなく、スクリプトでやる理由は?
だいたいのことはアクションですることができます。
そもそも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; }
複雑なものや、機械的な作業はプログラムを組んで楽をしていきましょう。
では次回は基本的な書き方の説明をしていきたいと思います。