2012-02-20 8 views
16

Estoy usando el UIImagePickerController para tomar y editar una imagen. funciona bien en el paisaje, pero en el retrato que será recortar la imagen en un cuadrado (no permite reducir la imagen para ajustarla plenamente en el campo de cultivo plaza como en el paisaje Alguna ideaUIImagePickerController - crop picture to square (en vertical)

código:.?

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

Respuesta

4

le puede proporcionar una interfaz de usuario personalizada de cultivo, pero no hay manera de cambiar sólo el rectángulo de captura de la estándar.

This enlace podría ayudar con eso.

+1

Gracias. Me pregunto por qué los cultivos funcionan bien para el paisaje (puedo ajustar toda la imagen en el cuadrado de recorte, para que no se pierda nada), pero no para el retrato, donde no permite que la imagen entre en el cuadrado. – cabhara

+0

@cabhara y por qué funciona bien? – George

11

salida GKImagePicker biblioteca, se permite configurar el área de cultivo imagen personalizada, como esto:

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

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

no permite configurar la cámara como fuente. ¡Funciona solo con la galería! – George

+0

@George permite usar imágenes de la galería y la cámara. –

+0

Actualicé la respuesta para incluir una línea de muestra para establecer sourceType –

8

Sé que es muy tarde para responder a esta pregunta, pero alguien puede encontrar útil esta información.

Cambio

[imagePicker setAllowsEditing:YES]; 

Para

[imagePicker setAllowsEditing:NO]; 

Gracias, Jay

+0

Esto simplemente desactiva el recorte. Imagine un caso de uso en el que alguien quisiera cargar un retrato de tamaño completo, pero deseaba recortar partes de una foto de paisaje. – carbocation

+0

@carbocation sí que puede ser un caso. Pero supongo que es una funcionalidad completamente nueva, que puedes controlar al marcar la propiedad ** imageOrientation ** de la imagen en 'didFinishPickingImage:' delegar el método de 'UIImagePickerController' –

Cuestiones relacionadas