2012-09-22 49 views
31

是否可以在node.js中獲取圖像的寬度和高度(在服務器端,而不是客戶端)?我需要在我正在編寫的node.js庫中查找圖像的寬度和高度。在node.js中獲取圖像的寬度和高度

+1

這似乎是一個重複的(有人找到了答案的話):http://stackoverflow.com/questions/5530946/opening-images-on-nodejs-and-finding-out-width-height –

回答

27

是的,但這需要安裝GraphicsMagickImageMagick

我已經使用了兩者,我可以推薦GraphicsMagick它快得多。

一旦你安裝了這兩個程序,它的module你會做這樣的事情來獲得寬度和高度。

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); 
    } 
}); 
+0

在這種情況下,我該如何編寫一個函數來爲給定的圖像返回'size.width',並在回調之外調用該函數? –

+2

此外,這裏有一個相關的問題:http://stackoverflow.com/questions/12540405/how-can-i-specify-the-order-in-which-node-js-functions-are-evaluated –

+0

我提供了一個回答你鏈接到的其他問題。 – saeed

78

安裝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); 
}); 
+8

這應該是被接受的答案,因爲gm/im比這項任務需要更多的開銷。 –

+3

存在[圖像大小錯誤](https://github.com/netroy/image-size/issues/37)。我剛剛在製作中體驗過它。 GraphicsMagick沒有相同的錯誤。 – paldepind

3

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

更有趣的問題是「如何檢測圖像的大小,而不從遠程服務器的完全文件下載」。 probe-image-size將有所幫助。當然,它也支持本地流。

它是用純JS寫的,不需要任何沉重的依賴(ImageMagick等)。

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){ 

     } 
     }); 
相關問題