2012-04-11 5 views
8

Ho appena trovato un modo per cambiare il rettangolo per la casella di ritaglio che viene visualizzata dopo aver acquisito un'immagine da UIImagePickerViewController. Questo può essere fatto con l'aiuto di UIImagePickerControllerCropRect. Ma non ho idea di come usarlo. Originariamente la casella di ritaglio è quadrata. Voglio che sia rettangolare.Come utilizzare UIImagePickerControllerCropRect

Qualcuno può condividere un esempio con me?

risposta

3

Non è possibile farlo utilizzando la funzionalità integrata UIImagePickerController. Sfortunatamente, non puoi controllare la dimensione della casella di ritaglio.

Here is a project on github che può aiutarti a realizzare ciò che stai cercando di fare (checkout YSImageCrop.h).

Fondamentalmente, la linea di fondo è che è necessario implementare la funzionalità UIImagePickerController da soli. Credo che il progetto UIImagePickerWithEditor sia un buon punto di partenza.

+0

Il progetto sul GitHub è per ritaglio di un'immagine dopo che è stata presa utilizzando la fotocamera o la foto album. La Q riguarda il ritaglio mentre si scatta la foto o si visualizza una foto, simile all'applicazione bancaria Chase per acquisire un controllo con un rettangolo di ritaglio personalizzato. –

6

Sì, possiamo farlo.

Creare l'definita Funzione utente in questo modo:

- (UIImage *)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect 
{ 
    CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect); 

    UIImage *cropped = [UIImage imageWithCGImage:imageRef]; 
    CGImageRelease(imageRef); 


    return cropped; 

} 

E chiamare questo codice:

UIImage *img1=[self imageByCropping:img toRect:CGRectMake(0,0, 106.6, 106.6)]; 
UIImageView *image_view=[[UIImageView alloc] initWithImage:img1]; 
+1

Ciò è utile se si desidera ritagliare l'immagine scelta dall'utente in base a una determinata dimensione. Per quanto riguarda la modifica del riquadro di ritaglio in modo che l'utilizzo possa effettivamente selezionare l'immagine ritagliata, UIImagePickerController non lo consente. –

+0

grazie mille. –