「AUTO_jpg」スクリプトを改造しよう!

autocus_title

今回は以前制作したPhotoshop用スクリプト「AUTO_jpg」のスクリプトの中身を見ながら、処理の内容をカスタマイズしていきたいと思います。


以前、私が友人のために制作した「AUTO_jpg」は当ブログに公開後、現在も多くの方々にダウンロードされ続けています。私自身Photoshopスクリプトの制作や、自作したプログラムを一般公開するという事が初めてだったのですが、予想を超えるほど多く利用されている事を嬉しく思います。

その一方で「これに○○の機能があったらなあ」という意見をいくつか目にする事もありました。私の方でも「これは修正した方が使い勝手が良くなりそう」という部分については、ver1.1や1.2という形で対応してきましたが「PSDで保存したい」や「PNGで保存したい」といったように、本来の機能と異なる要望につきましては、その全てに対処することはまず不可能です。

そこで今回は「AUTO_jpg」の中身を公開し、スクリプトの処理の改造方法を紹介していくことで必要な機能は各自で付けてもらうようにしていこうと思います。


○プログラムの話とか聞きたくない人へ

プログラムの話とか面倒くさいしどうでも良い!前置きはいらん!という方のために、今回のブログ記事で最終的に完成させる「AUTO_png」「AUTO_psd」を下記リンクからダウンロードできるようにしておきました。

名前から予想はつくと思いますが、「AUTO_jpg」のpng版とpsd版です。

使い方はAUTO_jpgと一緒なので、以前の記事を参考に導入してくださいね!

ダウンロード

AUTO_png
AUTO_psd


……さて、この段階で殆どの人がこのページを閉じたと思いますが、気にせず進めていきたいと思います。

今回は「AUTO_jpgでpng画像を連番保存」するようにスクリプトを書き換えていくことを目標にしたいと思います。

1:Toolkitで開く

まずはスクリプトの中身を見るために「Adobe ExtendScript Toolkit」を開きます。

標準の保存先は「C:\Program Files (x86)\Adobe\Adobe Utilities – CS5\ExtendScript Toolkit CS5」になっています。(CS5の場合)
おそらく他のバージョンでもこの場所の中に入っていると思います。

そしてフォルダ内にある「ExtendScript Toolkit.exe」を開いて下さい。
auto_cus01
このような画面が開きます。

2:スクリプトの中身を見る

ウィンドウ上部メニューの「ファイル→開く」から「AUTO_jpg.jsx」ファイルを開きましょう。
auto_cus02
このようにスクリプトの書かれたファイルが開いたと思います。実際に開いた時は画像中のような色付きの枠は出ませんが、この後のスクリプトの書き換えの時にわかりやすいように部分ごとに三色で色分けしています。

先頭が「//」で始まっている緑文字は直下の処理内容を記載したコメントで、それ以外がスクリプト部分となります。

今回は「jpgの代わりにpngで保存したい」ので、先程の画像の赤枠の箇所を変更します。

3:スクリプトを書き換える

さて、スクリプトを書き換えていこうと思いますが、その前に現在の赤枠部分の処理内容を見てみましょう。ここの数字を変更すると、JPG保存に関する処理内容を変更することが可能です。

jpegOpt.quality = 保存時の画質 …この数値を変更すると保存時の画質を変更できる(0~12)
jpegOpt.scans = プログレッシブのスキャン数 …この数値を変更するとプログレッシブ数を変更できる(3~5)

※JPEGのプログレッシブって何?
・jpegファイルを表示する際、最初に粗い画像を表示し、徐々に全体を鮮明なイメージへと書き換えていく表示方法のこと。
メリット:通信速度の遅い環境でもユーザーに素早く画像全体を表示することができる
デメリット:ファイルサイズがわずかに大きくなる

ここの「//JPGファイル作成(検出画像数+1)」のコメント以下の部分をこのように書き換えます。(コピペもOK)

fileObj = new File( foldername + "/" + dName2 + "_" + jpgcount2);
pngOpt = new PNGSaveOptions();
pngOpt.interlaced = false;
activeDocument.saveAs(fileObj, pngOpt, true, Extension.LOWERCASE);

これで、png画像が保存されるようになります。

※また、psd形式で保存されるようにしたい場合は

fileObj = new File( foldername + "/" + dName2 + "_" + jpgcount2);
psdOpt = new PhotoshopSaveOptions();
psdOpt.alphaChannels = true;
psdOpt.annotations = true;
psdOpt.embedColorProfile = false;
psdOpt.layers = true;
psdOpt.spotColors = false;
activeDocument.saveAs(fileObj, psdOpt, true, Extension.LOWERCASE);

と書き換えればOKです。

さて、現段階ではpngで保存されるようになったものの、この状態では自動保存時にpngファイルの連番出力がされません。

その理由は、このスクリプトが「フォルダ内にある『jpgファイルの数』から連番の数字を決定している」からです。(もう少しスマートなやり方はあったのかもしれませんが、私自身スクリプト制作が初めて&他の方法が思いつかなかったのでこのようにしています)

そのため、pngで保存する場合は「png画像ファイルの数で連番の数を決める」ように変更を加える必要があります。

先程の画像の青枠部分の

fileList = folderObj.getFiles("*.jpg");

.psdの部分を.pngに直してください。※psd版も同様の手順

これでちゃんと動作するようになりましたが、最後に画像の黄枠部分

foldername = fPath + "/jpg_" + dName2;
folderObj = new Folder(foldername);
folderObj.create();

“/jpg_”の部分を“/png_”にすると、生成されるフォルダ名が変更されます。

最後に、変更したファイルを別名で保存しておきましょう。

4:動作の確認

それでは実際の動作を確認してみましょう。

適当なpsdファイル(PSD形式で保存済)を開いた後、この部分の左の三角をクリックし「Adobe Photoshop ~(お使いのバージョン)」を選択
auto_cus03

それが完了したら、この部分をクリックしてください。スクリプトが実行されます。
auto_cus04
png画像で保存されましたか?無事に保存されていれば完成です。

もし動かないといった場合、どこか間違えて書き換えてしまった可能性があります。

再生ボタンの二個隣の停止ボタンをクリックしてスクリプトを停止させた後、もう一度書き換えた部分を見なおしてください。

※注意すべき点として、今回書いたようなスクリプトは英数字の全角と半角、大文字と小文字をそれぞれ違う文字として処理します。これらがきちんと合っているか確認してみましょう。


今回は以上となります。

「AUTO_jpg」では単純な処理しか行っていませんが、Photoshopスクリプトを自在に使えるようになれば、複雑な作業も自動処理することが可能です。興味を持った方はご自分でスクリプトを自作してみてはいかがでしょうか。

下記のサイトにPhotoshopスクリプトに関する詳しい詳細が紹介されています。

参考サイト→【Photoshop CS自動化作戦】

それでは、また。