次のサンプルコードを使用して、ファイルをバッファーに読み込み、サイズを変更してディスクに書き込みます。
_function processImage(data) {
gm(data, 'test.jpg')
.resize('300x300')
.background('white')
.flatten()
.setFormat('jpg')
.toBuffer(function(err, buffer) {
if (err) {
throw err;
} else {
fs.writeFile('asd.jpg', buffer);
}
});
}
_
ただし、これはエラー_Error: Stream yields empty buffer
_を生成します。私は遊んでいますが、imageMagickとgraphicsMagickを使用していますが、同じです。
代用する場合
_toBuffer(...
_
とwrite('asd.jpg', function(err) ...
実際に適切なファイルを書き込みます。
[〜#〜] edit [〜#〜]この質問の作成中に解決策を見つけました。返信を参照してください
setFormat('jpg')
問題を引き起こした。に変更setFormat('jpeg')
が解決しました。
私の場合、同じ問題に直面していました:graphicsmagickバイナリをインストールします。
Sudo apt-get install graphicsmagick
ストリームは空のバッファを生成します
これは、graphiksmagickの一般的なエラーを示します。考えられる原因は次のとおりです。
const gm = require('gm').subClass({imageMagick: true});
コメントとしてアイデアを追加してください。
私もこのエラーに遭遇しました。私にとっての解決策は、許容メモリを128Mbから256Mbに増やすことでした。プロセスが成功するには137Mbが必要であることに気づきました。