2010-10-21 9 views
6

क्या आईओएस में UIImagePickerController द्वारा कैप्चर की गई छवि के मेटाडेटा तक पहुंच बनाना संभव है? मैं समझता हूं कि कैमरे के आवेदन (या अन्यथा आईफोन फोटो लाइब्रेरी में मौजूद) द्वारा कैप्चर की गई छवियों के लिए एसेट लाइब्रेरी फ्रेमवर्क के साथ किया जा सकता है, लेकिन एक डेवलपर किसी उपयोगकर्ता के पास एक आवेदन के भीतर से मेटाडेटा/एक्फिफ़ जानकारी का उपयोग कर सकता है चित्र? मैं किसी छवि के बाद किसी भी प्रकार की कैमरा एक्सपोजर-लेवल जानकारी ढूंढ रहा हूं। धन्यवाद!UIImagePickerController द्वारा ली गई छवि का मेटाडेटा (एक्फिफ़ टैग) - आईओएस/आईफोन

+0

Exif एक JPEG मार्कर के अंदर निहित टिफ स्वरूपित डेटा का एक टुकड़ा है किया था। इसलिए यदि आपके पास कच्ची छवि फ़ाइल तक पहुंच है, तो आप इसे पार्स कर सकते हैं और इसे पढ़ सकते हैं। –

उत्तर

5

जाहिर है, आप इसे लेने के तुरंत बाद किसी छवि के मेटाडेटा तक पहुंच सकते हैं। प्रोटोकॉल विधि है कि सिस्टम के द्वारा कहा जाता है के बाद एक छवि चयनित किया गया है है: अगर मैं पता लगा सकते हैं कि कैसे exif पाने के लिए UIImagePickerControllerMediaMetadata

अब:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 

NSDictionary तर्क, जानकारी, कुंजी होती है प्रकाश या स्तर के बारे में बुनियादी जानकारी अनुमान लगाने के लिए टैग या किसी एक्सपोजर-स्तरीय जानकारी से मैं खुश रहूंगा। :)

+0

वर्तमान स्थान प्राप्त करने और इसे जियोटैग करने के लिए आप CLLocationManager का उपयोग कर सकते हैं। – nonamelive

+1

ध्यान दें कि जब आप कैमरे से छवि कैप्चर करते हैं और UIImagePickerController का उपयोग करते हैं तो यह केवल वोक करता है। –

0

आईओएस 11 के लिए अद्यतन फ़ोटो ढांचे के साथ

उद्देश्य - सी:

#import <Photos/Photos.h> 

- (void)imagePickerController:(UIImagePickerController *)imagePicker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info { 

    PHAsset* asset = info[UIImagePickerControllerPHAsset]; 

    [asset requestContentEditingInputWithOptions:nil completionHandler:^(PHContentEditingInput *contentEditingInput, NSDictionary *info) { 
     CIImage *fullImage = [CIImage imageWithContentsOfURL:contentEditingInput.fullSizeImageURL]; 

     NSLog(@"%@", fullImage.properties.description); 
    }]; 

    [imagePicker dismissViewControllerAnimated:YES completion:nil]; 
} 

तुम भी निम्न कोड जोड़ सकते हैं फोटो पुस्तकालय का उपयोग (NSPhotoLibraryUsageDescription) की अनुमति की जरूरत है और फिर दृश्य लोड किया या दृश्य दिखाई देते हैं

[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) { 
    switch (status) { 
     case PHAuthorizationStatusAuthorized: 
      NSLog(@"PHAuthorizationStatusAuthorized"); 
      break; 
     case PHAuthorizationStatusDenied: 
      NSLog(@"PHAuthorizationStatusDenied"); 
      break; 
     case PHAuthorizationStatusNotDetermined: 
      NSLog(@"PHAuthorizationStatusNotDetermined"); 
      break; 
     case PHAuthorizationStatusRestricted: 
      NSLog(@"PHAuthorizationStatusRestricted"); 
      break; 
    } 
}]; 
संबंधित मुद्दे