2012-02-20 8 views
16

Sto utilizzando UIImagePickerController per prendere e modificare un'immagine. funziona bene nel paesaggio, ma in verticale si ritagliare l'immagine in un quadrato (non consente di ridurre l'immagine per adattarla a pieno titolo nel campo delle colture piazza come nel paesaggio Tutte le ideeUIImagePickerController - ritaglia l'immagine sul quadrato (in verticale)

Codice:.?

-(IBAction)initCamera:(id)sender{ 

//Init imagePicker instance 
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
[imagePicker setDelegate:self]; 

[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; 
[imagePicker setShowsCameraControls:YES]; 
[imagePicker setAllowsEditing:YES]; 

[self presentModalViewController:imagePicker animated:YES]; 
[imagePicker release]; 
} 

risposta

4

è possibile fornire un'interfaccia utente di ritaglio personalizzato, ma non c'è modo di cambiare solo il rettangolo di ritaglio di quella standard.

This collegamento potrebbe aiutare in questo.

+1

Grazie. Mi sto solo chiedendo perché il ritaglio funzioni bene per il paesaggio (posso inserire l'intera immagine nel riquadro di ritaglio, quindi niente si perde), ma non per il ritratto, dove non consente di adattare l'immagine al quadrato. – cabhara

+0

@ cabhara e perché funziona ok? – George

11

Partenza GKImagePicker libreria, permette di impostare l'area di ritaglio immagine personalizzata, in questo modo:

self.imagePicker = [[GKImagePicker alloc] init]; 
self.imagePicker.cropSize = CGSizeMake(320, 90); 
self.imagePicker.delegate = self; 

[self presentModalViewController:self.imagePicker.imagePickerController animated:YES]; 
+0

non consente di impostare la fotocamera come sourcetype. Funziona solo con la galleria! – George

+0

@George consente di utilizzare le immagini sia dalla galleria che dalla fotocamera. –

+0

Ho aggiornato la risposta per includere una linea di esempio per l'impostazione sourceType –

8

So che la sua davvero tardi per rispondere a questa domanda, ma qualcuno potrebbe trovare questo utile.

Change

[imagePicker setAllowsEditing:YES]; 

Per

[imagePicker setAllowsEditing:NO]; 

Grazie, Jay

+0

Questo semplicemente disabilita il ritaglio. Immagina un caso d'uso in cui qualcuno volesse caricare un ritratto a grandezza naturale, ma voleva ritagliare parti di una foto di paesaggio. – carbocation

+0

@carbocation sì, può essere un caso. Ma questa è tutta la nuova funzionalità che immagino, che puoi gestire selezionando ** propertyOrientation ** property of image in 'didFinishPickingImage:' metodo delegate di 'UIImagePickerController' –