2012-05-25 11 views
5

Ich versuche, Bild von meinem benutzerdefinierten Cropper zu beschneiden. Nicht von den UIImagePickerControllern. Jetzt, dass ich zeige das Bild aufgenommen von Bild Picker in einem UIImgeView von UIImagePicker Delegierter Handhabung:Konvertieren von UIImage in CGImage verursachen Drehung von Image

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

Zum Zuschneiden Ich kann dieses Bild zu CGImageRef konvertieren. Das Bild wird im Hochformat aufgenommen. Jetzt, wenn ich dieses Bild in CGImageRef Bildausrichtung konvertieren geändert. Auch wenn ich folgende verwenden:

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

}

Bildausrichtung erhalten geändert. Dies geschieht nur für die Bilder, die im Hochformat aufgenommen wurden. Landschaftsbilder haben dieses Problem nicht.

  1. Warum passiert das?
  2. Wie löst man das?

Dank Im Voraus.

+1

Dies liegt daran, 'UIImage' eine' imageOrientation' Eigenschaft hat, die Bilder über Dreh weiß, aber 'CGImageRef' nicht darüber weiß. –

Antwort

4

Dies ist, dass iPhone Kamera das Bild im Vergleich mit Home-Taste dreht. Es verwendet EXIF das ist Metadaten von Bild. Siehe dieses Thema anschauen:

iPhone image rotation

Verwandte Themen