问题描述
我正在尝试使用以下示例代码将文件读入缓冲区,调整大小,然后将其写入磁盘:
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);
}
});
}
但是,这会生成错误Error: Stream yields empty buffer
.我玩过,使用imageMagick和graphicsMagick,仍然一样.
However, this generates an error Error: Stream yields empty buffer
. I have played around, used imageMagick and graphicsMagick, still the same.
如果我替代toBuffer(...
与write('asd.jpg', function(err) ...
If i substitutetoBuffer(...
withwrite('asd.jpg', function(err) ...
它实际上写入了正确的文件.
it actually writes a proper file.
编辑在写此问题时,我找到了解决方法,请参见答复
EDIT While writing this question I found the solution, see reply
推荐答案
setFormat('jpg')
造成了问题.将其更改为setFormat('jpeg')
解决了.
setFormat('jpg')
caused the problems. Changing it tosetFormat('jpeg')
solved it.
这篇关于GraphicsMagick:toBuffer()流产生空缓冲区的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!