2012-03-28 10 views
5

Necesito editar mis imágenes antes de que se importen a la aplicación, pero después de editar la imagen se reduce la calidad ¿cómo se puede evitar esto?Problema con UIImagePickerControllerEditedImage

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

    [self dismissModalViewControllerAnimated:YES]; 
    imgEdited.image = [info objectForKey:UIImagePickerControllerEditedImage]; 


} 
+0

¿Ha encontrado la forma de resolver el problema de la reducción de la calidad de las imágenes después de editar ellos? – Sawsan

Respuesta

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

    [picker dismissModalViewControllerAnimated:YES]; 
    [picker release]; 

      // Edited image works great (if you allowed editing) 
    myUIImageView.image = [info objectForKey:UIImagePickerControllerEditedImage]; 
      // AND the original image works great 
    myUIImageView.image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
      // AND do whatever you want with it, (NSDictionary *)info is fine now 
    UIImage *myImage = [info objectForKey:UIImagePickerControllerEditedImage]; 
} 

Puede editar ur imagen. Prueba esto, puede funcionar para tu aplicación. ¡Gracias!

+2

gracias, pero no resuelve mi problema! ¡Creo que no entendiste mi pregunta –

0

La disminución de la calidad no tiene nada que ver con el código que ha presentado anteriormente. La calidad de la imagen depende de lo que esté haciendo con su imagen durante la edición. ¿Estás haciendo zoom y recortando la imagen?

+1

sin recortar ni hacer zoom, el resultado es el mismo! –

0

Ok. Esto va a sonar tonto. ¿Pero la imagen es de muy baja calidad o solo se muestra como de baja calidad?

Es posible que desee exportar esta imagen a su PC y verifique su calidad realmente baja en lugar de solo la imagen que muestra como de baja calidad.

4

Puede recortar UIImagePickerControllerOriginalImage manualmente utilizando el valor proporcionado por UIImagePickerControllerCropRect.

No comprobado rápida y sucia ejemplo:

static UIImage *my_croppedImage(UIImage *image, CGRect cropRect) 
{ 
    UIGraphicsBeginImageContext(cropRect.size); 
    [image drawAtPoint:CGPointMake(-cropRect.origin.x, -cropRect.origin.y)]; 
    UIImage *cropped = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return cropped; 
} 

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

    UIImage *originalImage = info[UIImagePickerControllerOriginalImage]; 
    CGRect cropRect = [info[UIImagePickerControllerCropRect] CGRectValue]; 
    UIImage *croppedImage = my_croppedImage(originalImage, cropRect); 

    // … 
}