2012-08-24 9 views
9

मैं जावा कोडएक छवि से जीपीएस डेटा प्राप्त करें जावा कोड

का उपयोग कर संलग्न छवि में आप वांछित डेटा जो मैं से खींचने के लिए चाहते हैं देख सकते हैं अपने स्थानीय प्रणाली में एक छवि फ़ाइल से मेटाडाटा प्राप्त करना चाहते हैं जावा कोड

enter image description here

मैं नीचे दिए गए कोड लिखा था और डेटा "विवरण" टैब में उल्लेख खींच नहीं है। नीचे कोड का आउटपुट है और यह वह नहीं है जिसे मैं ढूंढता हूं।

Started .. 
Format name: javax_imageio_jpeg_image_1.0 
Format name: javax_imageio_1.0 

कृपया मुझे अपने विचार दें। धन्यवाद

try { 
      ImageInputStream inStream = ImageIO.createImageInputStream(new File("D:\\codeTest\\arun.jpg")); 
      Iterator<ImageReader> imgItr = ImageIO.getImageReaders(inStream); 

      while (imgItr.hasNext()) { 
       ImageReader reader = imgItr.next(); 
       reader.setInput(inStream, true); 
       IIOMetadata metadata = reader.getImageMetadata(0); 

       String[] names = metadata.getMetadataFormatNames(); 
       int length = names.length; 
       for (int i = 0; i < length; i++) { 
        System.out.println("Format name: " + names[ i ]); 
       } 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
+2

आपका कोड आपकी आवश्यकताओं के अनुरूप क्यों नहीं है? कृपया अपनी समस्या को और स्पष्ट रूप से बताएं। – Keppil

+0

मेरा प्रश्न संपादित किया गया। उम्मीद है कि मैं आपको क्या देखता हूं उस पर अधिक विचार दूंगा :-) – Arun

उत्तर

9

जावा कोर एपीआई के साथ ऐसा करने के लिए आसान तरीका नहीं है। आपको छवि के मेटाडेटा पेड़ को पार्स करना होगा, और उचित EXIF ​​टैग की व्याख्या करना होगा। इसके बजाय, आप मौजूदा लाइब्रेरी से EXIF-पार्सिंग क्षमताओं के साथ आवश्यक कोड चुन सकते हैं, और इसे अपने आप में उपयोग कर सकते हैं। उदाहरण के लिए, मैंने Imagejavaxt की कक्षा का उपयोग किया है, जो किसी छवि से जीपीएस मेटाडेटा निकालने के लिए एक बहुत ही उपयोगी विधि प्रदान करता है। यह जितना आसान है:

javaxt.io.Image image = new javaxt.io.Image("D:\\codeTest\\arun.jpg"); 
double[] gps = image.getGPSCoordinate(); 

इसके अलावा, javaxt.io.Image कोई बाहरी निर्भरता है, तो आप केवल उस विशेष वर्ग का उपयोग कर सकते है अगर आप पूरी लाइब्रेरी पर निर्भरता को जोड़ने के लिए नहीं करना चाहती।

+0

अच्छा जवाब! बहुत उपयोगी !!! बहुत बहुत धन्यवाद !! – Arun

+0

मेरी राय यह है कि जावैक्स एक छवि हैंडलिंग और संचालन लागू करने के लिए अधिक है। मेटाडाटा-एक्स्ट्रैक्टर हेडर जानकारी निकालने के लिए है जो एक बेहतर फिट हो सकता है। –

6

मेरा सुझाव है कि आप छवि के EXIF ​​शीर्षलेख को पढ़ लें और फिर जीपीएस जानकारी खोजने के लिए टैग को पार्स करें। जावा में EXIF ​​शीर्षलेख निकालने और विश्लेषण करने के लिए एक महान लाइब्रेरी (मेटाडाटा-एक्स्ट्रैक्टर कहा जाता है) है। कृपया इस लाइब्रेरी here के लिए प्रारंभ करना प्रारंभ करें देखें।

एक बार जब आप ट्यूटोरियल में पहले 2 कदम करते हैं, तो [GPS] ([GPS] GPS Longitude, [GPS] GPS Latitude, ...) से शुरू होने वाले टैग देखें।

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