2012-04-14 11 views
9

मैं कुछ छवियों को आयात करने के लिए आईपैड फोटो लाइब्रेरी (कैमरा रोल) का उपयोग कर रहा हूं, और उन्हें आवंटित विधि का उपयोग करके UIImageView में रखता हूं। लेकिन जब छवियां दिखायी जाती हैं तो एक बड़ी छवि गुणवत्ता हानि होती है। उदाहरण के लिए, पुस्तकालय में एक नदी के साथ एक छवि है जो बहुत तेज है, पिक्सेल द्वारा पिक्सेल है, लेकिन जब मैं इसे आयात करता हूं तो यह पिक्सेल के कम से कम आधा खो देता है। इस छवि को आयात करने के लिए कोड है:आईओएस लाइब्रेरी से आयात करते समय उल्लेखनीय छवि गुणवत्ता हानि

- (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 
{ 

} 

और गुणवत्ता अंतर (छवि से ज़ूम इन) लेकिन आप स्पष्ट रूप से भी छोटे पैमाने में अंतर देख सकते हैं:

आईओएस पुस्तकालय:

enter image description here

मेरे UIImageView:

enter image description here

उत्तर

0

शायद तुम

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

का उपयोग मूल छवि प्राप्त करने के लिए करना चाहिए।

+0

इस आईपैड पर संभाल करने के लिए एक बेहतर तरीका हो गया है आप यूआईएममेज के बजाय मतलब * छवि = [जानकारी ऑब्जेक्टफोरकी: UIImagePickerControllerEditedImage]; ?? – Alessandro

+0

हां, खूबसूरती से ठीक काम करता है। यहां तक ​​कि मेरा भी इस तरह ठीक था: UIImage * image = [info ऑब्जेक्टफोरकी: UIImagePickerControllerOriginalImage]; – Alessandro

+0

... लेकिन कोई संपादन विकल्प नहीं है, और मैं संपादित संस्करण रखना चाहता हूं !! – Alessandro

0

मैंने यूनिवर्सल ऐप पर काम करते समय भी इसी तरह की समस्या देखी। इमेज टच पर फोटो एलबम से इमेज टच पर इमेज पिकिंग से इमेज टच पर एक छवि चुनना, गुणवत्ता के किसी भी नुकसान के साथ ठीक है, लेकिन आईपैड पर यूआईएममेज पिकर कंट्रोलर एडिट आईमेज केवल 320 पिक्सेल चौड़ा था, जिसके परिणामस्वरूप गुणवत्ता में कमी आई, मुझे लगता है क्योंकि संपादन के लिए इस्तेमाल किए गए पॉपओवर केवल 320 पिक्सल चौड़ा!

बहुत खोज के बाद मैं फिर से मूल चित्र काटने के लिए शब्दकोश से उपयोगकर्ता की फसल सेटिंग्स का उपयोग कर this code भर में आया था, लेकिन मैं महसूस कर मदद नहीं कर सकता वहाँ

संबंधित मुद्दे