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

はい、これは可能ですが、 GraphicsMagickまたはImageMagickをインストールする必要があります。

私は両方を使用しましたが、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は、画像のサイズを決定できるもう1つの純粋な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 に答える