2012-05-25 14 views
5

Estoy tratando de recortar la imagen de mi cosechadora personalizada. No de UIImagePickerController's. Ahora, para que yo estoy mostrando la imagen capturada a partir del selector de imágenes en un UIImgeView por el manejo delegado de UIImagePicker:Conversión de UIImage a CGImage causa rotación de la imagen

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

para el cultivo que tiene que convertir esta imagen a CGImageRef. La imagen se captura en modo retrato. Ahora cuando convierto esta imagen en la orientación de la imagen CGImageRef, cambie. Incluso si uso siguiente:

- (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]; 

}

orientación de la imagen se ve modificado. Esto sucede solo para aquellas imágenes que se capturan en modo retrato. Las imágenes de paisajes no tienen este problema.

  1. ¿Por qué ocurre esto?
  2. ¿Cómo resolver esto?

Gracias de antemano.

+1

Esto se debe a '' UIImage' tiene una propiedad imageOrientation', lo que sabe acerca de la rotación de imágenes, pero 'CGImageRef' no sabe nada de esto. –

Respuesta

4

Esto es que la cámara del iPhone gira la imagen comparando con el botón de inicio. Utiliza EXIF que son metadatos de la imagen. Ver este tema:

iPhone image rotation

Cuestiones relacionadas