Vista de UIImagePickerController con tamaño incorrecto

Estoy usando una UIImagePickerController de UIView como una vista UIViewController's UIView de mi propio UIViewController's . Nada especial en eso, el problema viene cuando tomo una foto. Lo que está sucediendo es algo como esto:

1 La image que veo desde la vista de UIImagePickerController es algo como esto:

introduzca la descripción de la imagen aquí

2 Esto es lo que veo cuando tomo la image ( [self.imagePicker takePicture]; ) y la coloco en una UIImageView :

introduzca la descripción de la imagen aquí

Por lo que veo, la image que sale es un poco más alta en el eje Y. ¿Hay alguna forma de resolver esto? No me importa si tengo que usar algún tipo de recorte con la image que aparece en:

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info; 

Puedo entender este comportamiento porque UIViewContentModeScaleAspectFill en UIImageView , pero me gustaría poder especificar la Y desde donde quiero comenzar a "mirar".

Fue capaz de resolver esto 28 minutos después, oh bueno, aquí va:

 CGImageRef imageRef = CGImageCreateWithImageInRect([imageTaken CGImage], CGRectMake(0.0f, 0.0f, 960.0f, 960.0f)); [selectedImageView setImage:[UIImage imageWithCGImage:imageRef]]; CGImageRelease(imageRef); 

Al recortar en 960.0f puedo mantener la calidad original de la image y también puedo decir de qué Y soy capaz de "cortar". También agregué esto:

 + (UIImage*)rotate:(UIImage*)image andOrientation:(UIImageOrientation)orientation; { UIGraphicsBeginImageContext(image.size); CGContextRef context=(UIGraphicsGetCurrentContext()); if (orientation == UIImageOrientationRight) { CGContextRotateCTM (context, 90/180*M_PI) ; } else if (orientation == UIImageOrientationLeft) { CGContextRotateCTM (context, -90/180*M_PI); } else if (orientation == UIImageOrientationDown) { // NOTHING } else if (orientation == UIImageOrientationUp) { CGContextRotateCTM (context, 90/180*M_PI); } [image drawAtPoint:CGPointMake(0, 0)]; UIImage *img=UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return img; } 

Porque la image viene girada hacia la izquierda.