PhotoshopのアクションをApplescriptで動かす
いつも、Indesignばかりなので、
たまにはPhotoshopとApplescriptについて書きます。
Photoshopを自動化で作業する時はアクションを使いますよね。
一括で作業したい時は、フォルダに画像を集めたあと、Photoshopの自動処理のバッチからアクションを選び実行をすると一括で処理してくれます。
作業の流れ的には、
Photoshopのファイルメニュー>自動処理>バッチ>アクションを選択>アクション実行
という感じでしょうか。
今回、紹介する方法は
Applescriptを実行>フォルダを選択>アクション実行
という流れになります。
とてもシンプルなコードだけど、意外に便利です。
set basefol to choose folder with prompt "画像フォルダを選択"
set basefol to basefol as string --フォルダのフルパスstringでテキストに変換
repeat with baseFile in list folder basefol without invisibles --フォルダ内リピート
set this_item to (basefol & baseFile) as alias --フォルダとファイル名を合体
set basepath to this_item as string --ファイル名付きフルパスを取り出す
tell application id "com.adobe.photoshop"
open file basepath --フォルダの中の画像開く
do action "アクション名" from "セット名" --アクションの"名前""セット"
end tell
end repeat
display dialog "処理終了"
このスクリプトには保存処理が入ってないので、保存が必要な場合はPhotoshopのアクションには保存処理まで入れる必要があります。
Photoshopのアクションの設定は下記部分なので、下記の"アクション名"と"セット名"だけ環境に合わせて調整してください。
do action "アクション名" from "セット名"
出来たコードを「アプリケーション」フォルダにある「ユーティリティ」の中にある「スクリプトエディタ」アプリを立ち上げ、
「新規書類」を選びコピペしコンパイル。
問題なければ実行。
うまく動けば、保存からアプリケーションを選び保存。
次回からアプリ実行のみで使うことが可能です。
下記、補足メモ。読まなくて良いです。
1行目
「set 〇〇 to choose folder with prompt」これはフォルダを選択するコマンド。
〇〇の部分は任意の文字になります。引数というもので、フォルダを選択した情報を入れるとこですね。
今回は「basefol」という文字にしております。
2行目
「set 〇〇 to 〇〇 as string 」
〇〇の部分は、1行目に書いた「basefol」に画像フォルダの情報が入ったので、stringを使ってフルパスのテキストにするのですが、うまく説明ができないので、〇〇の部分には1行目で書いた因数を入れるように覚えてください。
4行目
今回使っている「basefol」に入ったフォルダに入ったファイル情報をリスト化して「baseFile」に入れます。
5・6行目「basefol」のパスと「baseFile」のファイル名を合体し、「basepath」にファイル名までのフルパスが入る。
ファイルの分だけ、4〜13行目まで、それぞれのファイルに処理をする。
8行目
photoshopをたちあげ、「basepath」に入ったフルパスを参照しファイルを開く。
9行目
Photoshopのアクションを実行する。
"アクション名"と"セット名"の名前はPhotoshopに設定しているアクションとセット名にする。
(" "は消さない)
15行目
処理終了後のダイアログ表示
今回のは、もとのファイルがPDFの場合は処理できません。
open file basepath
の箇所を下記に書き換えると画像ではなく、PDFを開く処理になります。
open file basepath as PDF with options {class:PDF open options, page:aPage, crop page:media box, resolution:aResol, mode:CMYK}
optionのあとの { }で囲まれた箇所は、PDFをPhotoshopで開くオプション設定になります。
ちなみにPhotoshopをアクションのバッチで作業する場合は連番にしないと上書きされ続けますが、Applescriptを使って処理すると、PDFの名前のまま画像を保存できたりします。