2009-09-04 9 views
5

मैं अपने ऐप के वर्तमान दृश्य का स्क्रीन शॉट लेने और इसे फोटो एलबम (फिर ईमेल या एमएमएस'एड) में सहेजने की कोशिश कर रहा हूं।UIImageWriteToSavedPhotosAlbum गलत आकार और गुणवत्ता को बचाता है

UIGraphicsBeginImageContext(self.view.bounds.size); 

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsEndImageContext(); 

UIImageWriteToSavedPhotosAlbum(viewImage, self, @selector(savedPhotoImage:didFinishSavingWithError:contextInfo:), nil); 

यह काम करता है लेकिन जिसके परिणामस्वरूप छवि बड़ा हो सकता है apears (533x800px) और भारी संकुचित जब मैं फोटो लाइब्रेरी से ईमेल कर दें।

मैंने पहली बार यूआईएममेज को फ़ाइल करने और फिर एल्बम में सहेजने की कोशिश की है लेकिन फिर भी वही समस्या मिलती है।

यदि मैंने आईफोन पर अंतर्निर्मित स्क्रीनशॉट कार्यक्षमता का उपयोग किया है तो दृश्य 320x480 पर फोटो एलबम में सही ढंग से सहेजता है लेकिन उपरोक्त कोड किसी कारण से बड़ी छवि को सहेजता प्रतीत होता है?

धन्यवाद!

+0

मुझे यह जोड़ना चाहिए कि डिवाइस पर परीक्षण करते समय यह केवल तब होता है। सिम्युलेटर पर सब ठीक लगता है। – wuwongy

उत्तर

1

मेरे पास एक ही त्रुटि थी, मेरे हिस्से पर, जब मैंने दशमलव बिंदु को आईफोन के समान पैमाने पर गोल किया, तो इसे आज़माएं, सुनिश्चित करें कि स्केल 1.0, 2.0, आदि है और 3.1 नहीं है इसे फेंक देगा।

19

मुझे एक सभ्य कामकाज मिला, जो अनिवार्य रूप से UIImage को पीएनजी के रूप में दोबारा शुरू करने के लिए है, फिर पुनर्निर्मित संस्करण को सहेजें। कोड इस तरह कुछ दिखता है:

UIImage* im = [UIImage imageWithCGImage:myCGRef]; // make image from CGRef 
NSData* imdata = UIImagePNGRepresentation (im); // get PNG representation 
UIImage* im2 = [UIImage imageWithData:imdata]; // wrap UIImage around PNG representation 
UIImageWriteToSavedPhotosAlbum(im2, nil, nil, nil); // save to photo album 
+1

यह संपीड़न समस्या का समाधान है। छवियों को आपकी फोटो लाइब्रेरी में पीएनजी के रूप में संग्रहीत किया जाएगा। अपनी फोटो लाइब्रेरी में छवि के ईमेल को ईमेल करके इसका परीक्षण करें। –

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