как получить exif из фото? - PullRequest
0 голосов
/ 09 января 2012

я хочу получить exif с картинки.как я делаю это оптимально?

NSData *dataOfImageFromGallery = UIImageJPEGRepresentation (workingImage,0.5);

CGImageSourceRef imageSource;
imageSource = CGImageSourceCreateWithData((__bridge CFDataRef)dataOfImageFromGallery, NULL);

if (imageSource == NULL) { 
    // Error loading image ... 
     return; } 

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:NO], (NSString *)kCGImageSourceShouldCache, nil]; 
CFDictionaryRef imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, (__bridge CFDictionaryRef)options); 

if (imageProperties) { 
    NSNumber *width = (__bridge NSNumber *)CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelWidth); 
    NSNumber *height = (__bridge NSNumber *)CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelHeight); 

    CFRelease(imageProperties); 

    NSLog(@"width: %@", width);
    NSLog(@"height: %@", height);  
}

это печать width и height, но свойства EXIF ​​составляют около 40 в CGImageProperties.h в ImageIO.h файле библиотеки, и я не знаю, как печататьвсе сразу.

Ответы [ 3 ]

2 голосов
/ 09 января 2012

Используйте exiftool, мой простой проект на основе exiftool

0 голосов
/ 09 января 2012

Если все, что вы хотите сделать, это записать все содержимое словаря imageProperties, то просто выполните:

NSLog(@"imageProperties: %@", imageProperties);

Если это не то, что вы ищете, уточните свой вопрос.

0 голосов
/ 09 января 2012

Если вы ориентируетесь на IOS 4 и выше, вы должны использовать ALAssetsLibrary.Здесь есть много потоков, которые описывают ALAssetsLibrary и как получить EXIF-данные из изображения.

Однако следует помнить, что если пользователь не разрешает использовать службы определения местоположения для вашего приложения, ALAssetsLibrary не будет работать и сообщит оошибка (доступ запрещен)

...