2013-01-07 18 views
7

मैं एक स्क्रीनशॉट बीच विसंगति का सामना कर रहा हूँ (प्रोग्राम के रूप में नीचे दिए गए कोड का प्रयोग करके) और क्या स्क्रीन पर वास्तव में है, जब एक छवि (मेरे मामले में बहुत दूर) में ज़ूम इन किया और पास-पड़ोसी प्रदान की गई है बनाए रखने के लिए हार्ड किनारों। मैं इन मंचों से निम्नलिखित स्क्रीनशॉट कोड है, लेकिन क्या सहेजा जाता है एक है (द्विरेखीय?) छवि के बजाय निकटतम-पड़ोसी के प्रतिपादन।कार्यक्रम संबंधी स्क्रीनशॉट गलत ढंग से प्रस्तुत निकटतम-पड़ोसी

UIGraphicsBeginImageContextWithOptions([[UIScreen mainScreen] bounds].size, NO, 0.0); 
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *imageView = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
UIImageWriteToSavedPhotosAlbum(imageView, nil, nil, nil); 

तरह से मैं निकटतम-पड़ोसी करना viewDidLoad में निम्न पंक्ति के साथ है

automataView.layer.magnificationFilter = kCAFilterNearest; 

(automataView उस में एक GIF फ़ाइल के साथ एक UIImageView है, और यह एक UIScrollView करने के लिए एक subview रूप में जोड़ा है जो संभवत: ज़ूम)

यहाँ दो चित्र हैं संभालती है, पहले क्या स्क्रीन पर है, दूसरे क्या इसके बाद के संस्करण स्क्रीनशॉट कोड का उपयोग कर सहेजा जाता है। (लिंक के लिए खेद है - "एक स्पैम निवारण तंत्र के रूप में, नए उपयोगकर्ताओं छवियां पोस्ट करने की अनुमति नहीं है")

http://www.flickr.com/photos/[email protected]/8358662379/

http://www.flickr.com/photos/[email protected]/8358662715/

किसी भी मदद के लिए धन्यवाद!

+0

क्या आपको कोई समाधान मिला है? –

उत्तर

3

मामले में सवाल अब भी प्रासंगिक है।

मैंने सोचा होगा कि इंटरपोलेशन उस वस्तु में सेट है जो आप स्वयं को संदर्भ में खींचता है, लेकिन ऐसा लगता है कि संदर्भ स्वयं कुछ इंटरपोलेशन करता है, इसमें गेटटर और सेटर के साथ CGIterpolationQuality विशेषता है। तो आपके स्निपेट में निम्नलिखित परिवर्तन मेरे लिए काम करता है:

UIGraphicsBeginImageContextWithOptions([[UIApplication sharedApplication] keyWindow].bounds.size, NO, 0.0); 
CGContextRef cgr = UIGraphicsGetCurrentContext(); 
CGContextSetInterpolationQuality(cgr, kCGInterpolationNone); 
[self.view.layer renderInContext:cgr]; 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);