2016年12月2日金曜日

Photoshopにスクリプトを登録してみる覚書

Photoshop用の自作スクリプトをメインメニューのファイル(F) > スクリプト(R)
の欄に表示させるには、Photoshopのインストール先の Presets\Scripts へ.jsxファイル
をコピーします。

たとえば hogehoge.jsx というのを作成しコピーした場合

ファイル名で登録されました。

よくあるパターンとして、メインになる処理を hogeCore.jsx にまとめて、引数だけ変えた
呼び出し用スクリプト hogeA.jsx と hogeB.jsx を作って登録したいと思った時、普通に
Presets\Scripts へコピーすると・・・



3つとも表示されてしまいます。

hogeCore はメニューに出したくない場合はどうすればよいか?


Presets\Scripts の中を見てみると、~Scripts Only みたいなフォルダが見つかります。
試しに"hoge Scripts Only"とフォルダを作成し、そこへ hogeCore.jsx を移動します。
すると、



hogeCore.jsx がメニューに表示されなくなりました。



次に、呼び出しファイルから処理ファイルを呼び出すスクリプトの書き方。

function main()
{
    const SELF = File( $.fileName );
    
    $.evalFile( SELF.path+"/hoge Scripts Only/hogeCore.jsx" );
    
    var ret = hogeCore();
    alert ( ret );
    
}

main();


function hogeCore()
{
    alert ("hogehoge");
    return 0;
    
}



$.fileName で自分のファイル名をフルパスで取れます。
$.evalFile() は、指定されたファイルを読み込む処理。
ここで hogeA.jsxと同じ階層の hoge Scripts Only フォルダ内に在る(はずの)hogeCore.jsx
を読み込んでいます。

こうすることで hogeCore.jsx の hogeCore() が実行可能になります。


メニューから hogeA を実行すると、

まず hogeCore.jsx のアラートが表示され、


hogeCore の返り値がアラートされます。


0 件のコメント:

コメントを投稿