2010-10-21 3 views
0

Я нахожусь в поиске, могу ли я выяснить, как получить доступ к информации метаданных Exif из образа, снятого моим iphone. Документация на яблоко, похоже, не содержит необходимой информации, которую я ищу. Я, вероятно, собираюсь это глупо, но я относительно новичок в программировании на iPhone и объективном-c, поэтому я все еще разбираюсь во всем.Что означает «{Exif}» из [NSArray objectAtIndex:]


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

//EXPERIMENTATION 
NSDictionary *metadata = [info objectForKey:UIImagePickerControllerMediaMetadata]; 
NSArray *metaDataKeys = [metadata allKeys]; 

for (NSUInteger i=0; i [metaDataKeys count]; i++) 
{ 
    NSLog(@"%@", [metaDataKeys objectAtIndex:i]); 
} 

Этот код производит следующий вывод:
2010-10-21 14: 42: 56,354 _ [3607: 307] DPIHeight
2010-10-21 14: 42: 56,355 _ [3607: 307] {Exif}
2010-10-21 14: 42: 56,356 _ [3607: 307] DPIWidth
201 0-10-21 14: 42: 56,357 _ [3607: 307] Ориентация
2010-10-21 14: 42: 56,358 _ [3607: 307] {} TIFF

Что означает '{Exif}'? Является ли буква буквально строкой «{Exif}»? Я предполагаю, что нет, потому что, когда я пытаюсь извлечь этот объект с этим ключом, я получаю NULL. И кто-нибудь случайно не знает, какой тип тега Exif будет, когда я в конечном итоге получаю его из этого NSDictionary? Есть ли какая-либо документация в любом месте, что полезно для обучения работе с тегами Exif? Благодаря!

+0

Если этот вопрос больше не требует дополнительных ответов, отметьте соответствующий пост в качестве ответа. –

ответ

1

Вы можете войти словари напрямую:

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

который проще (и лучше), чем список ключей, как вы делаете, а также показывает их содержание!

Metadata { 
    ColorModel = RGB; 
    DPIHeight = 72; 
    DPIWidth = 72; 
    Depth = 8; 
    Orientation = 6; 
    PixelHeight = 55; 
    PixelWidth = 116; 
    "{Exif}" =  { 
     ColorSpace = 1; 
     ComponentsConfiguration =   (
      1, 
      2, 
      3, 
      0 
     ); 
     ExifVersion =   (
      2, 
      2, 
      1 
     ); 
     FlashPixVersion =   (
      1, 
      0 
     ); 
     PixelXDimension = 55; 
     PixelYDimension = 116; 
     SceneCaptureType = 0; 
    }; 
    "{TIFF}" =  { 
     Orientation = 6; 
     ResolutionUnit = 2; 
     XResolution = 72; 
     YResolution = 72; 
     "_YCbCrPositioning" = 1; 
    }; 
} 
3

EXIF ​​= Сменная Формат файла изображения

http://en.wikipedia.org/wiki/Exchangeable_image_file_format

+0

Кто-нибудь знает, что это означает, когда objectAtIndex: возвращает {}? Я предположил, что имею дело с массивом строк? Не знаете, что обозначают скобки. –

+0

Я уверен, что фигурные скобки означают, что существует базовый объект, а «{Exif]» является строковым представлением этого объекта. Вы можете анализировать данные EXIF, используя это: http://code.google.com/p/iphone-exif/ –