2012-05-25 14 views
5

Sto tentando di ritagliare l'immagine con il mio cropper personalizzato. Non da UIImagePickerController's. Ora per questo sto mostrando l'immagine catturata da Immagine Picker in un UIImgeView gestendo delegato di UIImagePicker:Conversione di UIImage in CGImage causa la rotazione dell'immagine

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

per il ritaglio devo convertire questa immagine per CGImageRef. L'immagine viene catturata in modalità verticale. Ora quando converto questa immagine in CGImageRef l'orientamento dell'immagine viene modificato. Anche se uso seguente:

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

}

Orientamento immagine cambiarsi. Questo accade solo per quelle immagini che sono catturate in modalità verticale. Le immagini orizzontali non presentano questo problema.

  1. Perché questo sta accadendo?
  2. Come risolvere questo?

Grazie In anticipo.

+1

Questo perché 'UIImage' ha una proprietà' imageOrientation', che conosce la rotazione delle immagini, ma 'CGImageRef' non sa su questo. –

risposta

4

Questa è che la fotocamera di iPhone ruota l'immagine confrontandola con il tasto Home. Usa EXIF che è meta dati dell'immagine. Vedere questa discussione:

iPhone image rotation

Problemi correlati