Как получить дату создания фотографии в объективе c

Я пытаюсь получить дату съемки при выборе изображения из библиотеки фотографий на iPhone. Я использую приведенный ниже код, чтобы сделать то же самое.

NSDictionary* fileAttribs = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil];
NSDate *result = [fileAttribs fileCreationDate]; //or fileModificationDate

Но он показывает текущую дату и время.

Есть ли способ получить дату съемки при выборе изображения из библиотеки фотографий.


person Shivomkara Chaturvedi    schedule 17.10.2013    source источник
comment
проверьте это, stackoverflow.com/questions/7688983/   -  person karthika    schedule 17.10.2013


Ответы (2)


Вы можете сделать это, проверив метаданные изображения с помощью ALAsset

Найдите ключ ALAssetPropertyDate

РЕДАКТИРОВАТЬ, полный код:

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

    NSURL *url = [info objectForKey:@"UIImagePickerControllerReferenceURL"];

    ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init];
    [assetslibrary assetForURL:url
                   resultBlock:^(ALAsset *asset) {
                       NSDate *myDate = [asset valueForProperty:ALAssetPropertyDate];
                       NSLog(@"Date: %@", myDate);
                   } failureBlock:^(NSError *error) {
                       NSLog(@"Error");
                   }];

    [picker dismissViewControllerAnimated:YES completion:nil];

}
person Odrakir    schedule 17.10.2013
comment
Пожалуйста, проверьте документы, попробуйте сами, и если это не сработает, вернитесь с конкретным вопросом. - person Odrakir; 17.10.2013
comment
Хорошо, я проверил. Мой код: NSURL *url=[NSURL URLWithString:fileUrl]; ALAssetsLibrary *lib = [[ALAssetsLibrary alloc] init]; //Ключ UIImagePickerControllerReferenceURL позволяет получить ALAsset, который затем позволяет получить метаданные (например, дату создания носителя) [lib assetsForURL:url resultBlock:^(ALAsset *asset) { NSLog(@created: %@ , актив); } failureBlock:^(NSError *error) { NSLog(@error: %@, error); }]; Вывод: создан: (ноль) - person Shivomkara Chaturvedi; 17.10.2013
comment
Получите URL-адрес следующим образом: NSURL* url = [info objectForKey:@UIImagePickerControllerReferenceURL]; - person Odrakir; 17.10.2013
comment
Я не могу этого сделать, потому что использую phonegap. Я получаю URL-адрес от плагина phonegap, как показано ниже: 884D-91F8268542D4/tmp/cdv_photo_004.png - person Shivomkara Chaturvedi; 17.10.2013
comment
Тогда я не могу вам помочь. Должно быть что-то не так с этим URL. - person Odrakir; 17.10.2013

ALAssetsLibrary устарела, поэтому с PHAsset:

#import <Photos/PHAsset.h> 

Потом:

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

        NSURL *imageURL = [info valueForKey:UIImagePickerControllerReferenceURL];
        PHAsset *phAsset = [[PHAsset fetchAssetsWithALAssetURLs:@[imageURL] options:nil] lastObject];
        NSDate *date = [phAsset creationDate];
        UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage];

}
person dmtr    schedule 21.03.2018