Я пытаюсь написать код, в котором пользователь может сделать снимок со своей камеры, и затем он будет отображаться внутри указанного UIImageView, а также загружаться на сервер для последующего пользователя. В качестве устройства использую iPad. Однако, когда пользователь делает снимок, он поворачивается на 90 градусов. Кроме того, он неправильно масштабирован. Соотношение сторон отличается от того, что было сделано на фотографии. Это код, который я использую для масштабирования и изменения размера: http://pastebin.com/HxNkb7Be
При загрузке файла на мой сервер я получаю данные изображения следующим образом:
NSData *imageData = UIImageJPEGRepresentation(scaleAndRotateImage(image), 0.90f);
Вот как я получаю UIImage с камеры:
// Get the asset representation
ALAssetRepresentation *rep = [asset defaultRepresentation];
// Get the right orientation
UIImageOrientation orientation = UIImageOrientationUp;
NSNumber *orientationValue = [[rep metadata] objectForKey:@"Orientation"];
if (orientationValue != nil) {
orientation = [orientationValue intValue];
}
// Get the CG image reference and convert to UIImage
UIImage *image = [UIImage imageWithCGImage:[rep fullResolutionImage] scale:rep.scale orientation:orientation];