是否可以访问 iOS 中 UIImagePickerController 捕获的图像的元数据?我知道这可以使用 AssetLibrary 框架来完成,用于相机应用程序捕获的图像(或以其他方式存在于 iPhone 照片库中),但开发人员可以在用户拍摄后立即从应用程序中访问任何元数据/exif 信息图片?我正在从拍摄后的图像中寻找任何类型的相机曝光级别信息。谢谢!
问问题
4885 次
2 回答
5
显然,您可以在拍摄后立即访问图像的元数据。选择图像后系统调用的协议方法是:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
NSDictionary 参数 info 包含一个键:UIImagePickerControllerMediaMetadata
现在,如果我能弄清楚如何从中获取 exif 标签或任何曝光级别信息来推断有关光照级别的基本信息,我会很高兴的。:)
于 2010-10-21T21:03:54.000 回答
0
使用照片框架更新到 iOS 11
目标 - 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;
}
}];
于 2018-03-05T12:30:13.787 回答