我正在尝试使用以下示例代码将文件读入缓冲区,调整大小,然后写入磁盘:
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) ...
它实际上会写入一个正确的文件。
编辑 在撰写本问题时,我已找到解决方案,请参见回复。
brew install graphicsmagick
来安装GraphicsMagick。 - jamie-wilson