Estoy utilizando la biblioteca de fotos del iPad (rollo de cámara) para importar algunas imágenes y colocarlas en un UIImageView que creo utilizando el método alloc. pero cuando se muestran las imágenes, hay una gran pérdida de calidad de imagen. Por ejemplo, en la biblioteca hay una imagen con un río que es muy nítida, píxel por píxel, pero cuando la importo pierde al menos la mitad de los píxeles. Este es el código para importar la imagen:pérdida de calidad de imagen notable al importar desde la biblioteca de iOS
- (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 (imagen ampliada), pero se puede ver claramente la diferencia, incluso en pequeña escala: Biblioteca
iOS:
Mi UIImageView:
se mean en lugar de UIImage * image = [info objectForKey: UIImagePickerControllerEditedImage]; ?? – Alessandro
Sí, funciona muy bien. incluso el mío estaba bien de esta manera: UIImage * image = [info objectForKey: UIImagePickerControllerOriginalImage]; – Alessandro
... pero no hay opción de edición, y me gustaría conservar la versión editada. – Alessandro