मेरे पास कोको एप्लिकेशन में ऑफ स्क्रीन एनएसवीव्स का अनुक्रम है, जिसका उपयोग प्रिंटिंग के लिए पीडीएफ लिखने के लिए किया जाता है। विचार एनएसविंडो में नहीं हैं, या किसी भी तरह से दिखाई देते हैं।ऑफ़-स्क्रीन एनएसवी व्यू से स्केल की गई छवि जेनरेट करें
मैं उस दृश्य की थंबनेल छवियां उत्पन्न करने में सक्षम होना चाहता हूं, ठीक उसी तरह पीडीएफ देखेंगे, लेकिन एक निश्चित पिक्सेल आकार (चौड़ाई या ऊंचाई तक सीमित) फिट करने के लिए नीचे स्केल किया गया है। इसे जितनी जल्दी हो सके, इसलिए मैं पीडीएफ को प्रतिपादन से बचने के लिए, फिर रास्टर और स्केलिंग में परिवर्तित करना चाहता हूं - मैं सीधे रास्टर पर जाना चाहता हूं।
पल मैं कर रहा हूँ में:
NSBitmapImageRep *bitmapImageRep = [pageView bitmapImageRepForCachingDisplayInRect:pageView.bounds];
[pageView cacheDisplayInRect:pageView.bounds toBitmapImageRep:bitmapImageRep];
NSImage *image = [[NSImage alloc] initWithSize:bitmapImageRep.size];
[image addRepresentation:bitmapImageRep];
यह दृष्टिकोण अच्छी तरह से काम कर रहा है, लेकिन मैं बाहर काम नहीं कर सकते कि bitmapImageRep प्रतिपादन से पहले NSView करने के लिए एक स्केलिंग लागू करने के लिए। मैं scaleUnitSquareToSize
का उपयोग करने से बचना चाहता हूं, क्योंकि जैसा कि मैं इसे समझता हूं, केवल एनएसवी व्यू के फ्रेम की सीमाओं को ही बदलता है।
ऐसा करने के सर्वोत्तम तरीके पर कोई सुझाव?
मैं 'bitmapImageRepForCacheDisplayInRect:' और 'cacheDisplayInRect: toBitmapImageRep: 'गतिशील रूप से लॉन्च पर नोटबुक ऐप के लिए थंबनेल जेनरेट करने के लिए उपयोग कर रहा था। 40 पृष्ठों (परत-होस्टेड एनएसवीव्स) के साथ कई दृश्य सामग्री के साथ, थंबनेल जेनरेट करने में 90 सेकंड लग रहे थे। यह मैकोज़ के पिछले संस्करणों में नहीं था। मैंने 1.0 के पैमाने का उपयोग करके उपरोक्त @ टॉमटाइलर के दृष्टिकोण के साथ इस विधि को प्रतिस्थापित किया है (क्योंकि मुझे थंबनेल की पूर्ण आकार में तरल रूप से ऊपर की तरफ स्केल करने की आवश्यकता है) और थंबनेल पीढ़ी लगभग आधा वर्चुअल मेमोरी उपयोग के साथ 20 सेकंड (पृष्ठभूमि) तक गिर गई है! – Dalmazio