node-canvas を使用して背景画像をトリミングしようとしていますが、次のコードで奇妙なエラーが発生しています。
エラーは「[エラー: 出力ストリームへの書き込み中にエラーが発生しました]」です。node-canvas リポジトリのクロップ サンプル コードを使用すると、「Empty JPEG image (DNL not supported)」というエラーが表示されます。
/* */
var cnv = new Canvas(w,h),
ctx = cnv.getContext('2d'),
original = '/img/pages/'+page+'/background.jpg';
ctx.imageSmoothingEnabled = true;
fs.readFile('public/'+original, function( err,image){
if (err) {
res.status(404)
.send('Not found');
}
else {
var
img = new Image;
img.src = image;
ctx.drawImage(img,
Math.abs( (w-img.width)/2),0,
w,h,
0,0,
w,h
);
cnv.toBuffer(function(err, buf){
console.log(err);
if( err){
res.status(500)
.send('Error generating image buffer');
}
else {
fs.writeFile('public'+resampled, buf, function(err){
console.log(err);
console.log('Resized and saved in %dms', new Date - start);
returnResampledFile( res,page,w,h);
});
}
});
}
});
問題なく node-canvas を数回使用しましたが、何らかの理由でこれが問題です。どんな提案も素晴らしいでしょう。