2012-04-11 5 views
8

Acabo de descubrir una forma de cambiar rect para caja de recorte que aparece después de capturar una imagen de UIImagePickerViewController. Esto se puede hacer con la ayuda de UIImagePickerControllerCropRect. Pero no tengo idea de cómo usarlo. Originalmente, el cuadro de recorte es cuadrado. Quiero que sea rectangularCómo utilizar UIImagePickerControllerCropRect

¿Alguien puede compartir un ejemplo conmigo?

Respuesta

3

No puede hacer esto usando la funcionalidad incorporada UIImagePickerController. Desafortunadamente, no puedes controlar el tamaño del cuadro de recorte.

Here is a project on github que pueden ayudarte a lograr lo que estás buscando hacer (pago YSImageCrop.h).

Básicamente, la conclusión es que usted debe implementar la funcionalidad UIImagePickerController usted mismo. Creo que el proyecto UIImagePickerWithEditor es un buen lugar para comenzar.

+0

El proyecto en el GitHub es para recortar una imagen después de que se ha tomado con la cámara o foto álbum. La Q es sobre el recorte mientras se toma la foto o se ve una foto, similar a la aplicación de banca de Chase para capturar un cheque con un rectángulo de recorte personalizado. –

6

Sí, podemos hacer eso.

crear la función definida por el usuario como esto:

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

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


    return cropped; 

} 

Y llamar a este código:

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

Esto es útil si desea recortar la imagen que el usuario elige hasta un determinado tamaño. En cuanto a cambiar el cuadro de recorte para que el uso pueda realmente recoger la imagen recortada, el UIImagePickerController no lo permite. –

+0

muchas gracias. –