pérdida notable de calidad de image al importar desde la biblioteca de iOS

Estoy usando la biblioteca de fotos del iPad (rollo de camera) para importar algunas imágenes y colocarlas en una UIImageView que creo usando el método alloc. pero cuando se muestran las imágenes hay una gran pérdida de calidad de image. Por ejemplo, en la biblioteca hay una image con un río muy nítido, píxel por píxel, pero cuando lo importe, pierde al less la mitad de los píxeles. Este es el código para importar la image:

- (IBAction) useCameraRoll: (id)sender { @autoreleasepool { if ([self.popoverController isPopoverVisible]) { [self.popoverController dismissPopoverAnimated:YES]; } else{ }{ if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeSavedPhotosAlbum]) { @autoreleasepool { UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.delegate = self; imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; imagePicker.mediaTypes = [NSArray arrayWithObjects: (NSString *) kUTTypeImage, nil]; imagePicker.allowsEditing = YES; self.popoverController = [[UIPopoverController alloc] initWithContentViewController:imagePicker]; } popoverController.delegate = self; [self.popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; newMedia = NO; }} } } -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [self.popoverController dismissPopoverAnimated:true]; @autoreleasepool { NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) { UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage]; image1.image = image; if (newMedia) UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:finishedSavingWithError:contextInfo:), nil); } else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie]) { // Code here to support video if enabled }} } -(void)image:(UIImage *)image finishedSavingWithError:(NSError *)error contextInfo:(void *)contextInfo { if (error) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Save failed" message: @"Failed to save image"\ delegate: nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; } } -(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { } 

Y la diferencia de calidad (image ampliada), pero puede ver claramente la diferencia incluso en pequeña escala:

Biblioteca de iOS:

introduzca la descripción de la imagen aquí

Mi UIImageView:

introduzca la descripción de la imagen aquí

Tal vez deberías usar

 UIImage *img = [info valueForKey:@"UIImagePickerControllerOriginalImage"]; 

para get la image original.

Noté un problema similar al trabajar en una aplicación Universal. Elegir una image del Álbum de fotos en iPod touch con allowEditing = SÍ funcionó bien sin pérdida de calidad, pero en el iPad, la UIImagePickerControllerEditedImage solo tenía 320 píxeles de ancho, lo que resulta en una pérdida de calidad, creo que porque el popover que se usa para editar solo es ¡320 píxeles de ancho!

Después de muchas búsquedas, encontré este código para recortar la image original de nuevo utilizando las configuraciones de recorte del usuario del dictionary, pero no puedo evitar sentir que debe haber una mejor manera de manejar esto en el iPad