2010-10-21 32 views
6

是否可以訪問由iOS中的UIImagePickerController捕獲的圖像的元數據?我知道這可以通過AssetLibrary框架爲攝像機應用程序捕獲的圖像(或以其他方式呈現在iPhone照片庫中)完成,但是開發人員可以在用戶採取行動後從應用程序中訪問任何元數據/ exif信息圖片?拍攝後,我正在尋找來自圖像的任何類型的相機曝光級別信息。謝謝!訪問由UIImagePickerController拍攝的圖像的元數據(exif標籤) - iOS/iPhone

+0

Exif是一段包含在JPEG標記內的tiff格式的數據。所以如果你有權訪問原始圖像文件,你可以解析它並閱讀它。 – 2010-10-21 20:39:28

回答

5

顯然,您可以在拍攝後立即訪問圖像的元數據。由該系統中的圖像已被選定後,調用的協議方法是:

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

的NSDictionary的說法,信息,包含密鑰:UIImagePickerControllerMediaMetadata

現在,如果我能想出如何讓EXIF標籤或任何曝光級別的信息來推斷關於照明級別的基本信息,我會很高興。 :)

+0

您可以使用CLLocationManager獲取當前位置並對其進行地理標記。 – nonamelive 2011-10-12 06:15:48

+1

請注意,它僅在從相機捕獲圖像並使用UIImagePickerController時出現問題。 – 2014-08-26 11:04:25

0

更新到iOS 11張照片框架

的Objective - C:

#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; 
    } 
}]; 
相關問題