मैं UIView का स्क्रीनशॉट लेकर एक पीडीएफ बना रहा हूं, यह वर्तमान में रेटिना डिस्प्ले के साथ आईपैड 3 पर बहुत अच्छा काम कर रहा है, लेकिन जब मैं कम रिज़ॉल्यूशन स्क्रीन वाले अन्य उपकरणों पर परीक्षण कर रहा हूं पाठ संकल्प के साथ समस्याएं।renderInContext
यहाँ मेरी कोड है:
//start a new page with default size and info
//this can be changed later to include extra info.
UIGraphicsBeginPDFPage();
//render the view's layer into an image context
//the last option specifies scale. If 0, it uses the devices scale.
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 2.0);
CGContextRef context = UIGraphicsGetCurrentContext();
[view.layer renderInContext:context];
UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//render the screenshot into the pdf page CGContext
[screenShot drawInRect:view.bounds];
//close the pdf context (saves the pdf to the NSData object)
UIGraphicsEndPDFContext();
मैं भी 2.0 के लिए UIGraphicsBeginImageContextWithOptions
पैमाने पर सेट करने की कोशिश की है, लेकिन यह कोई परिवर्तन नहीं देता है। मैं 2x रिज़ॉल्यूशन पर प्रस्तुत करने के लिए आईपैड 2 पर एक दृश्य को कैसे मजबूर कर सकता हूं?
अपेक्षित उत्पादन:
वास्तविक उत्पादन:
आपको क्या समस्याएं हैं? 'UIGraphicsBeginImageContextWithOptions' से 2 में स्केल सेट करना इसे 2x रिज़ॉल्यूशन पर प्रस्तुत करने के लिए मजबूर होना चाहिए। सही और गलत आउटपुट दिखाने वाली छवियां पोस्ट करें। –
मेरा प्रश्न अपडेट किया गया – danielbeard
क्या पीडीएफ के उन स्क्रीनशॉट हैं? दो छवियां अलग-अलग आकार हैं, लेकिन दूसरे के आयामों में से दो बार नहीं है। न ही ऐसा लगता है कि इसे दूसरे के संकल्प में दो बार प्रस्तुत किया गया था। प्रत्येक वास्तविक 'UIImage' को फ़ाइल में सहेजने का प्रयास करें, उदा। '[UIImagePNGRresentresent (स्क्रीनशॉट) लिखने के लिए फ़ाइल: @"/tmp/image.png "परमाणु रूप से: नहीं]'। इसे सिम्युलेटर पर करें और प्रत्येक रन के बाद छवि को '/ tmp' से कॉपी करें। –