Что означает "{Exif}" из [NSArray objectAtIndex:] - PullRequest
0 голосов
/ 22 октября 2010

Я в поиске, могу ли я выяснить, как получить доступ к информации метаданных Exif из изображения, захваченного моим iphone. В документации Apple, похоже, отсутствует необходимая информация, которую я ищу. Я, наверное, глупо об этом, но я относительно новичок в программировании на iPhone и в задачах c, так что я все еще разбираюсь.


- (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
2010-10-21 14: 42: 56,357 _ [3607: 307] Ориентация
2010-10-21 14: 42: 56,358 _ [3607: 307] {TIFF}

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

Ответы [ 2 ]

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

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

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

1 голос
/ 14 декабря 2010

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

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;
    };
}
...