Cambiar el tamaño de UIImage de UIImagePickerController

Actualmente estoy tomando una foto usando este código aquí.

- (void) cameraButtonSelected { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.allowsEditing = YES; picker.sourceType = UIImagePickerControllerSourceTypeCamera; [self presentViewController:picker animated:YES completion:NULL]; } 

Permito que el usuario edite la foto, pero cuando uso este método de delegado por alguna razón, el UIImagePickerController no eliminará de la vista una vez que el usuario presionó "Usar foto"

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 

Me gustaría saber

  1. ¿Cómo elimino UIImagePickerController de la vista después de presionar el button "Usar foto"?
  2. ¿Cómo puedo cambiar el tamaño de la foto que acabo de tomar, ya que necesito una variante más pequeña para enviar a mi server?

Cualquier ayuda sería apreciada.

Puede get la image consultando UIImagePickerControllerEditedImage en la información dict. Y para eliminar el ImagePicker de la vista, simplemente despide al selector. Aquí está el código para cambiar el tamaño. Simplemente llámalo con tu instancia de image

Puede usar esta function para escalar la image a un tamaño particular

 - (UIImage *) scaleImage:(UIImage*)image toSize:(CGSize)newSize { //UIGraphicsBeginImageContext(newSize); // In next line, pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution). // Pass 1.0 to force exact pixel size. UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; } 

Entonces tu código final debería ser algo así

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [picker dismissViewControllerAnimated:YES completion:Nil]; UIImage *image = info[UIImagePickerControllerEditedImage]; image = [self scaleImage:image toSize:CGSizeMake(200,200)]; // or some other size } 

simple, puede searchlo aquí en stackoverflow

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { UIImage *tempImage=[info objectForKey:UIImagePickerControllerEditedImage]; [self.dealImageView setImage:[self imageWithImage:tempImage convertToSize:CGSizeMake(200, 200)]]; [self dismissViewControllerAnimated:YES completion:nil]; } - (UIImage *)imageWithImage:(UIImage *)image convertToSize:(CGSize)size { UIGraphicsBeginImageContext(size); [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; UIImage *destImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return destImage; } 

whats-the-easiest-way-to-resize-optimize-an-image-size-with-the-iphone-sdk

cambiar el tamaño y recortar-una-uiimage

  1. Llame [self dismissModalViewControllerAnimated:YES completion:nil] en alguna parte de su - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info método de - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info . Esta es una práctica común para cualquier vista modal.

  2. Esta pregunta es probablemente más complicada de lo que piensas. Hay varias maneras de cambiar el tamaño de una foto en iOS y el código que usa realmente dependerá de sus necesidades. Sin embargo, puede echar un vistazo a esta publicación de blog para get una comprensión del cambio de tamaño de la foto. Es muy completo y recomendaría leerlo antes de escribir cualquier código.

    http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/

    Dicho esto, esta es una forma muy sencilla de lograr el cambio de tamaño:

    La forma más simple de cambiar el tamaño de un UIImage?