2012-04-26 12 views
14

मैं छवि (जेपीईजी) से EXIF ​​ डेटा निकालने का प्रयास कर रहा हूं जिसे ब्राउज़र में खींच लिया गया है या HTML फ़ाइल इनपुट तत्व के माध्यम से चुना गया है।फ़ाइल अपलोड करने से पहले HTML/जावास्क्रिप्ट एक्सेस EXIF ​​डेटा

मैं FileReader and FileReader.readAsDataURL का उपयोग कर ब्राउज़र के भीतर छवि का पूर्वावलोकन करने में कामयाब रहा जैसा कि here वर्णित है।

और मुझे EXIF library मिला जो जावास्क्रिप्ट के माध्यम से किसी छवि के EXIF ​​डेटा को निकालने की अनुमति देता है। लेकिन मेरे लिए यह केवल तभी काम करता है जब मैं इसे सामान्य img टैग के साथ उपयोग करता हूं जो यूआरएल पर अपनी सामग्री लोड करता है।

मुझे स्टैक ओवरव्लो पर this question भी मिला जहां स्वीकार्य उत्तर बताता है कि यह संभव नहीं है।

लेकिन मुझे पूरा यकीन है कि इसे महसूस किया जा सकता है क्योंकि 500px.com अपलोड के लिए फ़ाइल जोड़ने के बाद और अपलोड समाप्त होने से पहले EXIF ​​डेटा निकालता है।

कुछ विचार फ़ाइलरिएडर से प्राप्त बेस 64 एन्कोडेड छवि से EXIF ​​डेटा निकालने के लिए कैसे संभव होना चाहिए?

+0

एक नए समाधान [exif-js] (https://github.com/jseidelin/exif-js), एक ही [EXIF_ लाइब्रेरी] के आधार पर (http://blog.nihilogic.dk/2008 /05/reading-exif-data-with-javascript.html) से [http://www.nihilogic.dk/](http://www.nihilogic.dk/) – arty

उत्तर

14

मैं अंत में समस्या के लिए एक ग्राहक के पक्ष समाधान नहीं मिला:

  1. FileReader और विधि का उपयोग कर फ़ाइल पढ़ें .readAsBinaryString
  2. फिर लपेट कि एक BinaryFile वस्तु जो पहले से ही EXIF Library में शामिल है में बाइनरी स्ट्रिंग
  3. अंत में EXIF.readFromBinaryFile(binaryFileObject);

फोन और उसके किया :)

+0

मेरी प्रोजेक्ट में binaryajax.js को शामिल करने का प्रयास करने से एक एक्सेस अस्वीकार त्रुटि का कारण बनता है, इसलिए यह मेरे लिए समाधान नहीं है। –

+1

nihilogic.dk का लिंक मर चुका है। –

+1

बाइनरीफाइल ऑब्जेक्ट और EXIF ​​लाइब्रेरी के लिंक भी मर चुके हैं। – MDeuerlein

3

FxIF firefox extension के कोड पर एक नज़र डालें। यह केवल जावास्क्रिप्ट का उपयोग कर exif डेटा पढ़ता है। फ़ाइल सामग्री को पढ़ने के लिए, आप आधुनिक ब्राउज़र के FileReader API का उपयोग कर सकते हैं।

+1

मैं वास्तव में ब्राउज़र एक्सटेंशन से बचना चाहता हूं। जैसा कि मैंने उल्लेख किया है कि मैं पहले से ही FileReady का उपयोग कर रहा हूं लेकिन मुझे नहीं पता कि मुझे फ़ाइल रीडर – alex

+2

से प्राप्त डेटा से EXIF ​​डेटा निकालने का तरीका पता है, आपको इसे इंस्टॉल नहीं करना चाहिए, इसे इंस्टॉल नहीं करना चाहिए। ;) – ThiefMaster

+0

क्षमा करें मुझे यह याद आया .. शायद यह मदद करता है! धन्यवाद! – alex

4

jQuery-fileExif जावास्क्रिप्ट लाइब्रेरी अपलोड करने से पहले छवि exif डेटा पढ़ता है। लाइब्रेरी से
GitHub link, उदाहरण jsfiddle

var someCallback = function(exifObject) { 

    $('#cameraModel').val(exifObject.Model); 
    $('#lat').val(exifObject.GPSLatitude); 
    $('#lng').val(exifObject.GPSLongitude); 
    // Uncomment the line below to examine the 
    // EXIF object in console to read other values 
    //console.log(exifObject); 

    } 

     try { 
     $('#file').change(function() { 
      $(this).fileExif(someCallback); 
     }); 
     } 
     catch (e) { 
     alert(e); 
     } 
+0

मुझे अपने प्रोजेक्ट में लाइब्रेरी को शामिल करने की कोशिश कर jquery में प्रवेश अस्वीकार कर दिया गया है। –

संबंधित मुद्दे