2012-09-22 14 views
31

में किसी छवि की चौड़ाई और ऊंचाई प्राप्त करें क्या node.js में एक छवि की चौड़ाई और ऊंचाई प्राप्त करना संभव है (सर्वर पक्ष पर, क्लाइंट पक्ष नहीं)? मुझे एक नोड.जेएस लाइब्रेरी में एक छवि की चौड़ाई और ऊंचाई खोजने की ज़रूरत है जिसे मैं लिख रहा हूं।node.js

+1

यह कोई डुप्लिकेट प्रतीत होता है (और कोई पहले से ही एक जवाब मिल गया): http://stackoverflow.com/questions/5530946/opening-images-on-nodejs-and-finding-out-width-height –

उत्तर

27

हां यह संभव है लेकिन आपको GraphicsMagick या ImageMagick इंस्टॉल करने की आवश्यकता होगी।

मैंने दोनों का उपयोग किया है और मैं ग्राफिक्स मैगिक की सिफारिश कर सकता हूं यह बहुत तेज़ है।

एक बार जब आप दोनों प्रोग्राम स्थापित कर लेंगे और यह 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

स्थापित कर रहा है GraphicsMagick या ImageMagick बिल्कुल, की जरूरत नहीं है एक चित्र के आयाम निर्धारित करने हैडर को देख के रूप में के रूप में आसान है। image-size कहा गया सुविधा का शुद्ध जावास्क्रिप्ट कार्यान्वयन है जो उपयोग करना बहुत आसान है।

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

यह स्वीकार्य उत्तर होना चाहिए क्योंकि जीएम/आईएम के पास इस कार्य के लिए आवश्यकतानुसार अधिक ओवरहेड है। –

+3

एक [छवि आकार में बग] है (https://github.com/netroy/image-size/issues/37)। मैंने इसे उत्पादन में अनुभव किया। ग्राफिक्स मैगिक में एक ही बग नहीं है। – paldepind

0

नली का व्यास एक और शुद्ध जावास्क्रिप्ट पुस्तकालय है कि छवियों के आयामों का निर्धारण कर सकते हैं।

https://github.com/calipersjs/calipers

3

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

अधिक दिलचस्प समस्या "कैसे दूरस्थ सर्वर से पूर्ण फ़ाइल डाउनलोड के बिना छवि आकार पता लगाने के लिए है।" probe-image-size मदद करेगा। कारण से, यह स्थानीय धाराओं का भी समर्थन करता है।

यह शुद्ध जेएस में लिखा गया है और किसी भी भारी निर्भरता (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){ 

     } 
     });