67

是否可以在 node.js 中获取图像的宽度和高度(在服务器端,而不是客户端)?我需要在我正在编写的 node.js 库中找到图像的宽度和高度。

4

6 回答 6

152

安装GraphicsMagickImageMagick根本不需要,确定图像的尺寸就像查看标题一样容易。image-size是所述功能的纯 javascript 实现,非常易于使用。

https://github.com/netroy/image-size

var sizeOf = require('image-size');
sizeOf('images/funny-cats.png', function (err, dimensions) {
  console.log(dimensions.width, dimensions.height);
});
于 2013-11-21T02:22:52.883 回答
43

是的,这是可能的,但您需要安装GraphicsMagickImageMagick

我都使用过,我可以推荐 GraphicsMagick,它的速度要快得多。

一旦你安装了程序和它的模块,你会做这样的事情来获得宽度和高度。

gm = require('gm');

// obtain the size of an image
gm('test.jpg')
.size(function (err, size) {
  if (!err) {
    console.log('width = ' + size.width);
    console.log('height = ' + size.height);
  }
});
于 2012-09-22T02:16:28.840 回答
17

https://github.com/nodeca/probe-image-size

更有趣的问题是“如何在没有从远程服务器下载完整文件的情况下检测图像大小”。probe-image-size会有所帮助。当然,它也支持本地流。

它是用纯 JS 编写的,不需要任何严重的依赖项(ImageMagick 等)。

于 2016-04-21T01:28:39.560 回答
2

Calipers 是另一个可以确定图像尺寸的纯 Javascript 库。

https://github.com/calipersjs/calipers

于 2016-01-04T00:08:31.397 回答
0
var sizeOf = require('image-size');
    sizeOf(my_file_item.completeFilename, function (err, dimensions) {
        try{
          if(!err){
            let image_dimensions = dimensions || "";
            let width = 200; // we want 200 
            let height = parseInt(width/(image_dimensions.width/image_dimensions.height));


          }else{

          }
          // console.log(ex);
        }catch(ex){

        }
      });
于 2017-10-30T05:57:00.073 回答
0

我使用了 Jimp:https ://www.npmjs.com/package/jimp npm install --save jimp

const jimage1 = await Jimp.read(imgBuffer);
const jimage2 = await Jimp.read(imgUrl);
const width = jimage1.bitmap.width;

它实际上是像素匹配的包装器

于 2021-12-29T07:37:35.510 回答