2010年10月20日水曜日

fireworksのスクリプトでファイルを一括トリミング&書き出し

・124x80のjpg画像が50個ほどあり、
・真ん中でトリミングしてサイズを110x80にし、
・ファイル名はそのままにしつつ、書き出す

ということをfireworksのスクリプト(jsf)でやってみました。ちなみにスクリプト言語はjavascriptが使えます。

var dom = fw.getDocumentDOM();

var basePath = "file:///C:/path/to/origImage/";
var outPath = "file:///C:/path/to/newImage/";

var jpgs = new Array("1.jpg","2.jpg","3.jpg","4.jpg");

dom.deleteAllInDocument();

var jNum = jpgs.length;
for ( var i = 0; i < jNum; i++ ) {
fw.getDocumentDOM().importFile(basePath+jpgs[i], {left:0, top:0, right:0, bottom:0}, false);
saveFile(jpgs[i]);
dom.deleteAllInDocument();
}

function saveFile(F){
dom.exportTo( outPath + F , {
exportFormat: "JPEG",

percentScale: 100,
crop:"true",
cropTop: 0,
cropLeft: 7,
cropRight: 117,
cropBottom: 80,
});
}



fireworksを起動後、適当なサイズで空の新規ドキュメントを開き、[コマンド→スクリプトの実行]でこのスクリプトを実行すれば、一気に書き出されます。

javascriptとはいえ、fireworksでのオブジェクトやドキュメントの扱いは初めてなので少し時間がかかりましたが、思うようにスクリプトが動いて一気に書き出しされると気持ちいいですね。

あと欲を言うとフォルダ内の全ファイルを自動で処理できたらいいんですけど、そこまではわからなかったので、ファイル名は自分で配列に入れています。


ちなみに使ったfireworksのバージョンは8です。たぶんCSやもっと古いバージョンでも動くと思います。


以下は今回参考にさせてもらったサイトです。
http://help.adobe.com/en_US/Fireworks/9.0_Extending/
http://trinine.net/blog/?p=74
http://www.pixelimage.jp/blog/2008/02/_fireworks.html

0 件のコメント:

コメントを投稿