在NodeJS中,我需要创建一个用于远程图像处理的API。使用图像的URL我需要获取所有相关数据(宽度,高度,文件大小等),然后使用Graphics magick等库来处理它。问题是,gm总是返回此错误
{[错误:产生ENOENT]代码:'ENOENT',错误:'ENOENT',系统调用:'spawn'}
我使用的代码是
request.get(imageUrl, function (err, res, body) {
var buffer = new Buffer(body,'binary');
gm(buffer)
.size(function (err, size) {
if (!err) {
console.log('width = ' + size.width);
console.log('height = ' + size.height);
} else
console.log(err)
});
});
问题是:如何在不下载图像的情况下处理图像?
答案 0 :(得分:0)
不同图像文件格式的图像元数据没有通用规范。因此,在大多数情况下,您将不得不依赖远程服务器的API为您提供图像元数据,而无需提供完整的图像信息,或者 - 您希望避免这种情况 - 只需获取完整图像并自行进行计算。 如果您不需要立即获得确切的图像尺寸或比例,则可以通过发送HTTP HEAD 请求并解释 Content-Type 和 Content-来估算它们。长度 HTTP响应标头。
关于 ENOENT 错误,似乎这可能是关于缺少数据( body 设置正确吗?)还是缺少ImageMagick安装:Error: spawn ENOENT while using GM in node