iPadフォトライブラリ(カメラロール)を使用して画像をインポートし、UIImageViewに配置します。これはallocメソッドを使用して作成します。画像が表示されているときには画質が大幅に低下します。たとえば、図書館では、河川が非常に鮮明な画像が1ピクセルずつありますが、インポートすると少なくとも半分のピクセルが失われます。これは、画像をインポートするためのコードです: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
{
}
と品質の違い(中ズーム画像)しかし、あなたは明らかに小さな規模の違いを見ることができます:
iOSのライブラリ:
私のUIImageView:
であなたをこれを処理するためのより良い方法があるように持って感じて助けることができませんUIImageの代わりに平均*画像= [情報 objectForKey:UIImagePickerControllerEditedImage]; ?? – Alessandro
はい、うまく動作します。私の場合でもこの方法でOKでした:UIImage * image = [info objectForKey:UIImagePickerControllerOriginalImage]; – Alessandro
...編集オプションはありません。編集したバージョンを保存したいと思います! – Alessandro