2012-03-28 6 views
5

イメージを編集してからアプリケーションにインポートする前に、イメージを編集した後にいくつかの品質が低下するのを防ぐにはどうすればよいですか?UIImagePickerControllerEditedImageでの問題

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

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


} 
+0

見つかりましたか? – Sawsan

答えて

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]; 
} 

あなたはウル画像を編集することができます。これを試してみてください。あなたのアプリケーションでうまくいくかもしれません。

+2

ありがとうございますが、私の問題は解決しません!私はあなたが私の質問 –

0

品質の低下は、上に示したコードとは関係ありません。画像の品質は、編集中に画像で何をしているかによって異なります。ズームインして画像をトリミングしていますか?

+1

を理解していないと思うどんなクロッピングやズームが結果は同じです! –

0

これはうっすらと聞こえるでしょう。しかし、画像は本当に低品質ですか、それとも単に低品質として表示されていますか?

この画像をPCにエクスポートして、画像ビューではなく実際に低品質であることを確認することができます。

4

UIImagePickerControllerCropRectで指定された値を使用してUIImagePickerControllerOriginalImageを手動でクロップできます。

未テストの迅速かつ汚い例:あなたは、編集後にその画像の品質を低下させる問題を解決する方法を

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); 

    // … 
}