是否可以在iOS中访问UIImagePickerController捕获的图像的元数据?我知道这可以通过相机应用程序(或iPhone照片库中的其他方式)捕获的图像的AssetLibrary框架来完成,但是开发人员可以在用户拍摄照片后立即从应用程序中访问任何元数据/exif信息吗?我正在寻找任何类型的相机曝光水平的信息,从一张已经拍摄的图像。谢谢!
发布于 2010-10-22 05:03:54
显然,您可以在拍摄后立即访问图像的元数据。选择镜像后系统调用的协议方法为:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)infoinfo参数包含一个键:UIImagePickerControllerMediaMetadata
现在,如果我能想出如何从中获得exif标记或任何曝光级别信息来推断有关光照级别的基本信息,我会很高兴。:)
发布于 2018-03-05 20:30:14
更新到带有照片框架的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),然后可以添加以下代码来查看did加载或查看did出现
[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;
    }
}];https://stackoverflow.com/questions/3991673
复制相似问题