使用UIImagePickerController拍摄的图像,如何访问元数据(exif标签)- iOS/iPhone

6

在iOS中,是否可以访问UIImagePickerController拍摄的图像的元数据?我知道使用AssetLibrary框架可以实现对相机应用程序捕获的图像(或iPhone照片库中存在的图像)的元数据访问,但是开发人员是否可以在用户拍摄照片后立即从应用程序内部访问任何元数据/ exif信息?我正在寻找拍摄后图像的任何类型的相机曝光级别信息。谢谢!


Exif是包含在JPEG标记内部的一段TIFF格式数据。因此,如果您可以访问原始图像文件,就可以解析并读取它。 - user180326
2个回答

5

显然,在拍摄完一张图片后,您可以立即访问其元数据。系统在选择图像后调用的协议方法是:

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

NSDictionary参数info包含一个键:UIImagePickerControllerMediaMetadata

现在,如果我能找出如何从中获取exif标签或任何曝光级别的信息来推断关于光亮度的基本信息,我将会很高兴。 :)


您可以使用CLLocationManager获取当前位置并进行地理标记。 - nonamelive
1
请注意,此功能仅在从相机捕获图像并使用UIImagePickerController时才有效。 - Pawan Sharma

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),然后可以将以下代码添加到“view did load”或“view did appear”中

[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;
    }
}];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接