Вращение после выбора UIImage библиотеки
Когда я выбрал портретную фотографию из библиотеки, вот так: http://img15.hostingpics.net/thumbs/mini_919836image1.png
UIImage, возвращаемый библиотекой, поворачивается. http://img15.hostingpics.net/thumbs/mini_826263Image2.png
Вот мой код:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
UIImage* originalImg = [editInfo objectForKey:UIImagePickerControllerOriginalImage];
[self useImage:originalImg];
}
Как я могу избежать этого?
2 ответа
Вы ранее делали снимок с помощью средства выбора изображений в своем приложении, а затем сохраняли изображение? Если да, вы установили ориентацию при сохранении изображения? Вам нужно.
Попробуйте добавить инструкцию журнала или отладку, чтобы проверить, какая ориентация установлена на изображении.
Если ориентация установлена на изображении, тогда UIImageView автоматически отрендерит изображение правильно.
Если (в будущем) вы собираетесь взять данные изображения и загрузить их куда-то, вам нужно будет проверить ориентацию и заново нарисовать изображение, применяя соответствующее преобразование к контексту.
self.imageData=[info objectForKey:@"UIImagePickerControllerOriginalImage"];
CIImage *image = [[CIImage alloc] initWithImage:[info objectForKey:@"UIImagePickerControllerOriginalImage"]];
self.imageData=[UIImage imageWithCIImage:image scale:self.imageData.scale orientation:self.imageData.imageOrientation];
Вы можете использовать следующие методы, чтобы сохранить ориентацию изображения:
[UIImage imageWithCIImage:(CIImage *) scale:(CGFloat) orientation:(UIImageOrientation)];
[UIImage imageWithCGImage:(CGImageRef) scale:(CGFloat) orientation:(UIImageOrientation)];