Обновление метаданных ориентации UIImage?

Основная задача: обновите свойство ориентации EXIF для метаданных, связанных с UIImage. Моя проблема в том, что я неНе знаю, где находится свойство ориентации во всей информации EXIF.

Запутанный фон: Я меняю ориентацию изображения, возвращаемогоimagePickerController:didFinishPickingMediaWithInfo: поэтому я думаю, что мне нужно обновить метаданные перед сохранением изображения с помощью.writeImageToSavedPhotosAlbum:(CGImageRef)imageRef metadata:(NSDictionary *)metadata

Другими словами, если я не изменю это, метаданные будут содержать старую / начальную ориентацию и, следовательно, будут ошибочными. Причина, по которой я меняю ориентацию, заключается в том, что она постоянно сбивает меня с толку, когда я запускаюCore Image рутина обнаружения лица. Фотосъемка с iPhone (устройство) в портретном режиме с использованием передней камеры, ориентацияUIImageOrientationRight (3). Если я переписать изображение, чтобы ориентацияUIImageOrientationUp(0), я получаю хорошие результаты распознавания лиц. Для справки, процедура перезаписи изображения приведена ниже.

Вся эта ориентация камеры мне кажется очень запутанной, и мне кажется, что я все глубже копаюсь в кодовой дыре. Я посмотрел на сообщения (Вот,Вот а такжеВот, И согласно этому посту (https://stackoverflow.com/a/3781192/840992):»

Камера на самом деле является альбомной, поэтому вы поднимаетесь или опускаетесь при съемке в альбомной ориентации и влево или вправо при съемке в портретной ориентации (в зависимости от того, как вы держите устройство). "

... что полностью сбивает с толку. Если вышеизложенное верно, я бы подумал, что мне следует ориентироваться наUIImageOrientationLeftMirrored или жеUIImageOrientationRightMirrored с фронтальной камерой. И ничто из этого не объясняет, почемуCIDetector не удается девственное изображение, возвращаемое сборщиком.

Я подхожу к этой заднице задом наперед, но я могукажется, сориентироваться ... "

-(UIImage *)normalizedImage:(UIImage *) thisImage
{
    if (thisImage.imageOrientation == UIImageOrientationUp) return thisImage;

    UIGraphicsBeginImageContextWithOptions(thisImage.size, NO, thisImage.scale);
    [thisImage drawInRect:(CGRect){0, 0, thisImage.size}];
    UIImage *normalizedImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return normalizedImage;
}

Ответы на вопрос(2)

Ваш ответ на вопрос