Доступ к метаданным (теги exif) изображения, полученного с помощью UIImagePickerController - iOS / iPhone - PullRequest
6 голосов
/ 22 октября 2010

Можно ли получить доступ к метаданным изображения, захваченного UIImagePickerController в iOS?Я понимаю, что это можно сделать с помощью инфраструктуры AssetLibrary для изображений, снятых приложением камеры (или иным образом представленных в библиотеке фотографий iPhone), но может ли разработчик получить доступ к любой информации метаданных / exif из приложения сразу после получения пользователемкартина?Я ищу любой тип информации об уровне экспозиции камеры на изображении после его съемки.Спасибо!

Ответы [ 2 ]

5 голосов
/ 22 октября 2010

Очевидно, вы можете получить доступ к метаданным изображения сразу после того, как оно было снято.Метод протокола, который вызывается системой после выбора изображения:

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

Аргумент NSDictionary, info, содержит ключ: UIImagePickerControllerMediaMetadata

Теперь, если я смогу понятьКак получить теги exif или любую информацию об уровне экспозиции, чтобы получить основную информацию об уровне освещения, я буду счастлив.:)

0 голосов
/ 05 марта 2018

обновлено до 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;
    }
}];
...