2012-05-25 2 views
5

Я пытаюсь обрезать изображение с помощью моего настраиваемого обрезщика. Не из UIImagePickerController. Теперь, что я показываю изображение, снятое с изображением Picker в UIImgeView при обращении с делегатом UIImagePicker в:Преобразование UIImage в CGImage вызывает поворот изображения

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo { 
    imvOriginalImage.image = image; 
} 

Для кадрирования я должен преобразовать это изображение в CGImageRef. Изображение снимается в портретном режиме. Теперь, когда я конвертирую это изображение в CGImageRef, ориентация изображения изменится. Даже если я использую следующее:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo { 
    //imvOriginalImage.image = image; 
    CGImageRef imgRef = [image CGImage]; 
    UIImage *img = [UIImage imageWithCGImage:imgRef]; 
    [imvOriginalImage setImage:img]; 

}

Ориентация изображения переоденется. Это происходит только для тех изображений, которые записываются в портретном режиме. Пейзажные изображения не имеют этой проблемы.

  1. Почему это происходит?
  2. Как это решить?

Thanks In Advance.

+1

Это потому, что 'UIImage' имеет' imageOrientation' свойство, которое знает о вращающихся изображений, но 'CGImageRef' не знает об этом. –

ответ

4

Это камера iPhone поворачивает изображение по сравнению с кнопкой «Домой». Он использует EXIF, который является метаданным изображения. Смотрите эту тему:

iPhone image rotation

Смежные вопросы