2013年10月11日金曜日

Photoshop7 スクリプトでレイヤーをPNGファイルに書き出す

psdファイルからレイヤーを読み取ってpngファイルとして出力できないかな、と
思って調べていたら、そもそもjavascriptでPhotoshopそのものに機能を追加できるらしい。
早速使ってみた。

参考サイト

Photoshop7でスクリプトを使用できるようにする

CS系列にはデフォルトでスクリプト機能が用意されているみたいなんだけど、7にはない。
AdobeさんからPhotoshopScripting102aというexeファイルをダウンロードだ!
実行すると、「ファイル」→「自動処理」の欄にScripts...というメニューが追加される。
最初からサンプルがあるので適当に実行。ばっちり動いた。

レイヤーをPNGファイルに書き出す

そらかぜ工場さんの「スクリプトを使う」のページからPhotoshop7用の
SplitLayersというスクリプトをダウンロード。
実行するとpsdファイルがあるフォルダにレイヤー別にpsdファイルとして出力される。
psdファイルとして、出力される。

今回の目的はPNGファイルとして書き出すこと。しかしネット上には情報がないぞう。
というわけでリファレンスとにらめっこしつつダウンロードしたファイルを弄ってみました。
FileオブジェクトのsaveAsメソッドでデータを保存しているようなので、単純に考えてここかな、と
あたりを付けて調べる。

/*---------------------------------------------------------------------------*/
newFile = new File( baseName + layerName ); // 新規ファイル名
newDoc.saveAs( newFile, saveOpt, false, Extension.LOWERCASE ); // 保存
newDoc.close(); // 作成したファイルを閉じる
/*---------------------------------------------------------------------------*/

最初は拡張子でExtensionじゃない? と思ったんだけどリファレンスを見る限り違うっぽい。

/*---------------------------------------------------------------------------*/
    Extension
    LOWERCASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    NONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    UPPERCASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
/*---------------------------------------------------------------------------*/

それで次に目をつけたのがsaveOpt。保存のオプション。怪しい。
SaveOptionsでリファレンスを検索してみたら、PNGSaveOptionsを発見。
引数saveOptをPNGSaveOptionsに変更してみたら、PNGで書き出しができた。


ネットにあるのが基本的にCSの情報っぽいのがきつい。
今回みたいにもとになるものがあるならなんとかなるけど、0から作るのは厳しいかも。
リファレンスとのにらめっこは必須なり。

0 件のコメント:

コメントを投稿