images
次のようなパス文字列の配列であるとしましょう:
[ "/home/user/first.jpg", "/home/user/a.png", "/home/user/another.gif" ];
次に、これは機能するはずです:
var gm = require('gm');
var gmstate = gm(images[0]);
for (var i = 1; i < images.length; i++) gmstate.append(images[i]);
// finally write out the file asynchronously
gmstate.write('/home/user/result.png', function (err) {
if (!err) console.log('Hooray!');
});
アイデアは次のとおりです。
- Graphicsmagick 状態変数から始める
gmstate
- ループで同期的に追加します。
write()
実際の作業を行いますが、これは非同期で行われます。
これは と同等gm('first').append('second').append('third')....append('last')
です。
おそらく、空の状態から開始することも可能です: var gmstate = gm();
.
@
ファイルにリストがある場合は、LeeNXの回答のファイルリストハックがはるかに簡単であることを認めなければなりませんが、そうでない場合は...?
編集:画像を水平に追加する必要がある場合は、次のように に 2 番目のパラメーターtrue
を追加します。append()
gmstate.append(image, true);
出典:ドキュメントappend()