boernard boernard - 2 months ago 26
Node.js Question

GraphicsMagick: toBuffer() Stream yields empty buffer

I am trying to read a file into a buffer, resize it and then write it to disk using the following example code:

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);
}
});
}


However, this generates an error
Error: Stream yields empty buffer
. I have played around, used imageMagick and graphicsMagick, still the same.

If i substitute

toBuffer(...


with

write('asd.jpg', function(err) ...


it actually writes a proper file.

EDIT While writing this question I found the solution, see reply

Answer

setFormat('jpg')
caused the problems. Changing it to
setFormat('jpeg') solved it.

Comments