Почему, когда я использую CGImageCreateWithImageInRect, изображение поворачивается? - PullRequest
0 голосов
/ 27 мая 2011

Это мой код:

CGRect rect = CGRectMake(size.width / 4, size.height / 4 , 
                         size.width / 2, size.width / 2); 

CGImageRef imageRef = CGImageCreateWithImageInRect([[picture objectForKey:UIImagePickerControllerOriginalImage] CGImage], rect);

UIImage *img = [UIImage imageWithCGImage:imageRef]; 

CGImageRelease(imageRef);

но изображение вращается.

Как мне это решить?

Ответы [ 2 ]

0 голосов
/ 28 июня 2012

Причина: каждый UIImage имеет ориентацию, по умолчанию UIImageOrientationUp.Но ориентация изображения, снятого с помощью камеры ([picture objectForKey: UIImagePickerControllerOriginalImage]), не всегда является UIImageOrientationUp.Итак, если вы просто скопируете изображение с помощью [UIImage imageWithCGImage:], вы потеряете информацию об ориентации.Вместо этого используйте [UIImage imageWithCGImage: scale: direction:].

FYI http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImage_Class/Reference/Reference.html#Constants В разделе констант Docset предоставляет образец изображения для каждой UIImageOrientation.

0 голосов
/ 27 мая 2011

Возвращает исходное изображение UIImagePickerControllerOriginalImage. Самый простой способ - использовать UIImagePickerControllerEditedImage, но перед тем, как приступить к настройке, настройте ImagePicker для разрешения редактирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...