Używam biblioteki zdjęć iPada (rolki aparatu) do importowania niektórych obrazów i umieszczania ich w utworzonym UIImageView przy użyciu metody alloc. ale gdy wyświetlane są obrazy, dochodzi do utraty doskonałej jakości obrazu. Na przykład w bibliotece znajduje się obraz z rzeką, który jest bardzo ostry, piksel po pikselu, ale gdy go zaimportuję, traci co najmniej połowę pikseli. Jest to kod do importowania obrazu:zauważalna utrata jakości obrazu podczas importowania z biblioteki 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
{
}
a różnica jakości (obraz powiększony), ale można wyraźnie zobaczyć różnicę nawet w małej skali:
iOS Biblioteka:
Moje UIImageView:
ty średnia zamiast UIImage * image = [info objectForKey: UIImagePickerControllerEditedImage]; ?? – Alessandro
Tak, działa pięknie. nawet mój był w porządku w ten sposób: UIImage * image = [info objectForKey: UIImagePickerControllerOriginalImage]; – Alessandro
... ale nie ma opcji edycji i chciałbym zachować edytowaną wersję !! – Alessandro