GraphicsMagick:toBuffer() Stream 产生空缓冲区
GraphicsMagick: toBuffer() Stream yields empty buffer
我正在尝试将文件读入缓冲区,调整其大小,然后使用以下示例代码将其写入磁盘:
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) ...
它实际上写了一个正确的文件。
编辑 在写这个问题时我找到了解决方案,请参阅回复
setFormat('jpg')
造成了问题。将其更改为
setFormat('jpeg')
解决了。
我遇到了同样的问题:安装 graphicsmagick 二进制文件。
sudo apt-get install graphicsmagick
Stream yields empty buffer
这表明 graphiksmagick 的一般错误。
以下是一些可能的原因:
- 缺少安装:您没有正确安装 graphicsmagick 或 imagemagick。确保你同时安装了
- 无效参数: 删除所有参数直到它起作用。 jpg 而不是 jpeg 是一个常见的错误
- 错误的库 你使用了 graphicmagick 但想使用 imagemagick? (例如,用于 webp 转换)。添加 imageMagick 配置:
const gm = require('gm').subClass({imageMagick: true});
欢迎在评论中添加更多想法。
我也偶然发现了这个错误。对我来说,解决方案是将允许的内存从 128Mb 增加到 256Mb。我注意到该进程需要 137Mb 才能成功。
Error: Stream yields empty buffer
对我来说,错误的解决方案是同时安装graphicsmagick
和imagemagick
。
可能是因为我在 node-alpine
容器中使用应用程序,我只想使用 gm
的 graphicsmagick
功能。
我正在尝试将文件读入缓冲区,调整其大小,然后使用以下示例代码将其写入磁盘:
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) ...
它实际上写了一个正确的文件。
编辑 在写这个问题时我找到了解决方案,请参阅回复
setFormat('jpg')
造成了问题。将其更改为
setFormat('jpeg')
解决了。
我遇到了同样的问题:安装 graphicsmagick 二进制文件。
sudo apt-get install graphicsmagick
Stream yields empty buffer
这表明 graphiksmagick 的一般错误。 以下是一些可能的原因:
- 缺少安装:您没有正确安装 graphicsmagick 或 imagemagick。确保你同时安装了
- 无效参数: 删除所有参数直到它起作用。 jpg 而不是 jpeg 是一个常见的错误
- 错误的库 你使用了 graphicmagick 但想使用 imagemagick? (例如,用于 webp 转换)。添加 imageMagick 配置:
const gm = require('gm').subClass({imageMagick: true});
欢迎在评论中添加更多想法。
我也偶然发现了这个错误。对我来说,解决方案是将允许的内存从 128Mb 增加到 256Mb。我注意到该进程需要 137Mb 才能成功。
Error: Stream yields empty buffer
对我来说,错误的解决方案是同时安装graphicsmagick
和imagemagick
。
可能是因为我在 node-alpine
容器中使用应用程序,我只想使用 gm
的 graphicsmagick
功能。