2012-09-22 19 views
31

Ist es möglich, die Breite und Höhe eines Bildes in node.js (auf der Serverseite, nicht die Client-Seite) zu bekommen? Ich muss die Breite und Höhe eines Bildes in einer node.js Bibliothek finden, die ich schreibe.Erhalten Sie die Breite und Höhe eines Bildes in node.js

+1

Dies scheint ein Duplikat zu sein (und jemand eine Antwort bereits gefunden): http://stackoverflow.com/questions/5530946/opening-images-on-nodejs-and-finding-out-width-height –

Antwort

27

Ja, das ist möglich, aber Sie müssen GraphicsMagick oder ImageMagick installieren.

Ich habe beide verwendet und ich kann empfehlen GraphicsMagick es ist viel schneller.

Sobald Sie installiert haben sowohl das Programm, und es ist module Sie so etwas tun würde, die Breite und Höhe zu erhalten. so einfach wie Blick auf den Header

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

Wie kann ich in diesem Fall eine Funktion schreiben, die 'size.width' für ein bestimmtes Bild zurückgibt und diese Funktion außerhalb des Callbacks aufruft? –

+2

Auch hier ist eine weitere Frage: http://stackoverflow.com/questions/12540405/how-can-i-specify-the-order-in-which-node-js-functions-are-evaluated –

+0

ich eine zur Verfügung gestellt haben Beantworte andere Fragen, auf die du verlinkt bist. – saeed

78

Installation GraphicsMagick oder ImageMagick wird nicht benötigt, ist es, die Abmessungen eines Bildes zu bestimmen. image-size ist eine reine JavaScript-Implementierung dieses Features, die sehr einfach zu bedienen ist.

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

Dies sollte die akzeptierte Antwort sein, einfach weil gm/im viel mehr Aufwand als für diese Aufgabe benötigt. –

+3

Es gibt einen [Fehler in der Bildgröße] (https://github.com/netroy/image-size/issues/37). Ich habe es gerade in der Produktion erlebt. GraphicsMagick hat nicht den gleichen Fehler. – paldepind

3

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

Interessanter Problem ist "wie die Bildgröße ohne vollständige Datei Herunterladen von Remote-Server zu erkennen". probe-image-size wird helfen. Natürlich unterstützt es auch lokale Streams.

Es in reiner JS geschrieben und benötigt keine schweren Abhängigkeiten (ImageMagick und so weiter).

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

     } 
     }); 
Verwandte Themen