AdobeのCCのアセット機能で画像のスライスは格段に楽になった。
その際生成される奇数の画像を毎回photoshopで、修正していたのだが、
それ用のスクリプトをkatapadさんが用意してくれてました。
果てしなく便利!(要imagemagic)
http://qiita.com/katapad/items/261b277f1abe20018fa1
https://github.com/katapad/evenizer
ですが、windowsユーザーの僕はzshが入っておらず、
1ファイルは処理できるのだがワイルドカードが使用できなかった。
zshをwindowsに入れるためにはCygwin入れたり諸々設定をしなければならず非常にめんどくさい。
http://futurismo.biz/archives/1363
なので、globを使って稚拙なnodeスクリプトを書きました。
外部からkatapadさんの外部コマンドを読み込む。
even.js
var glob = require("glob")
var exec = require('child_process').exec;
var options = {timeout: 1000};
var cmd = "./**/*.{jpg,png,gif}";
glob(cmd, options, function (er, files) {
for (var i =0; files.length > i; i++) {
console.log(files[i]);
exec("evenizer -i "+ files[i]);
};
});
拡張子を選択したい場合はこっちのほうがいいかもしれません。
コマンドライン上で、引数にその拡張子だけを入力すると特定の拡張子だけを処理します。
コマンドライン
node x.js png
even2.js
var glob = require("glob")
var exec = require('child_process').exec;
var options = {timeout: 1000};
// ここに拡張子が入る
var extension = process.argv[2]
var cmd = "./**/*." + extension ;
glob(cmd, options, function (er, files) {
for (var i =0; files.length > i; i++) {
console.log(files[i]);
exec("evenizer -i "+ files[i]);
};
});
奇数のファイルを1px広げてくれるのだが、
気を付けないといけないのが、jpgファイルの場合、黒のふちが出てしまった。
同じファイルをpngや、gifに変換した時は大丈夫だったので、jpg特有みたい。
こういう作業を自動化してくれるスクリプトは本当にありがたいです。
ありがとうございました。