我正在尝试从网址加载图片的尺寸。到目前为止,我已尝试使用GraphicsMagick
,但它给了我ENOENT
错误。
到目前为止,这是我编写的代码。
var gm = require('gm');
...
gm(img.attribs.src).size(function (err, size) {
if (!err) {
if( size.width>200 && size.height>200)
{
console.log('Save this image');
}
}
});
img.attribs.src
包含图片的url source path
。
更新
img.attribs.src
http://rack.1.mshcdn.com/assets/header_logo.v2-30574d105ad07318345ec8f1a85a3efa.png
答案 0 :(得分:7)
https://github.com/nodeca/probe-image-size它完全是你问的,没有严重的依赖。此外,它只下载必要的文件和平。
示例:
var probe = require('probe-image-size');
probe('http://example.com/image.jpg', function (err, result) {
console.log(result);
// => {
// width: xx,
// height: yy,
// type: 'jpg',
// mime: 'image/jpeg',
// wUnits: 'px',
// hUnits: 'px'
// }
});
免责声明:我是此套餐的作者。
答案 1 :(得分:5)
您要做的是先下载文件。最简单的方法是使用request模块。很酷的是,request
和gm
都可以使用streams。在使用流和gm识别命令(如大小,格式等)时,您唯一需要记住的是,您需要将bufferStream
选项设置为true
。更多信息here。
var gm = require('gm');
var request = require('request');
var url = "http://strabo.com/gallery/albums/wallpaper/foo_wallpaper.sized.jpg";
var stream = request(url);
gm(stream, './img.jpg').size({ bufferStream: true }, function (err, size) {
if (err) { throw err; }
console.log(size);
});
您也可以在磁盘上下载文件(也可以使用请求),然后正常使用gm
。
答案 2 :(得分:2)
我已使用this库成功执行操作。
答案 3 :(得分:0)
你需要图片大小的NPM,这项工作对我来说很好,希望你的工作
var sizeOf = require('image-size');
sizeOf('/images/'+adsImage, function (err, dimensions) {
var imgwidth= dimensions.width;
var imgheight= dimensions.height;
console.log(imgheight +" = = = = "+imgwidth)
if( imgwidth>200 && imgheight>200)
{
console.log('Save this image');
}
});