से UIImage बनाना I छवि को संसाधित करने के लिए कुछ कोरइमेज फ़िल्टर का उपयोग कर रहा हूं। मेरे इनपुट छवि परिणामों में फ़िल्टर को लागू करने के लिए फ़िल्टर आउटपुट इमेज नामक आउटपुट छवि में CIImage टाइप करें।सीआईएममेज
मैं अब उस छवि को प्रदर्शित करना चाहते हैं, और करने की कोशिश की कर रही है:
self.modifiedPhoto = [UIImage imageWithCIImage:filterOutputImage];
self.photoImageView.image = self.modifiedPhoto;
दृश्य तथापि खाली है - कुछ भी नहीं दिखाई जा रही है।
यदि मैं लॉगिंग स्टेटमेंट जोड़ता हूं जो फ़िल्टरऑटपुट इमेज और self.modifiedPhoto दोनों के बारे में विवरण प्रिंट करता है, तो उन लॉगिंग स्टेटमेंट्स मुझे दिखा रहे हैं कि उन दोनों वर्रों में वैध छवि डेटा शामिल है: उनके आकार की सूचना दी जा रही है और ऑब्जेक्ट्स शून्य नहीं हैं।
तो कुछ गूगलिंग करने के बाद, मुझे एक समाधान मिला जो एक CGImage मंच के माध्यम से जाने की आवश्यकता है; विज़:
CGImageRef outputImageRef = [context createCGImage:filterOutputImage fromRect:[filterOutputImage extent]];
self.modifiedPhoto = [UIImage imageWithCGImage:outputImageRef scale:self.originalPhoto.scale orientation:self.originalPhoto.imageOrientation];
self.photoImageView.image = self.modifiedPhoto;
CGImageRelease(outputImageRef);
यह दूसरा दृष्टिकोण से काम करता है: मैं दृश्य में प्रदर्शित सही छवि हो रही है।
क्या कोई मुझे बता सकता है कि मेरा पहला प्रयास क्यों विफल हुआ? मैं ImageWithCIImage विधि के साथ क्या गलत कर रहा हूं जिसके परिणामस्वरूप एक छवि मौजूद है जो प्रदर्शित होने पर प्रदर्शित नहीं हो सकती है? क्या सीआईएममेज से यूआईएममेज उत्पन्न करने के लिए सीजीआईमेज चरण को "पार करना" हमेशा आवश्यक है?
उम्मीद किसी ने मेरे भ्रम की स्थिति :)
एच
आह! धन्यवाद। हां, फोटो इमेज व्यू एक UIImageView है। मुझे नहीं पता था कि यह UIImage की CGImage संपत्ति का उपयोग करता था। – Hamster
एक और सवाल, जिसमें दस्तावेज़ में यह बताया गया है कि UIImageView अपनी छवि को कैसे प्रदर्शित करता है? मैं यह पता लगाने की कोशिश कर रहा हूं कि आपने कहां से सीखा है :) – Hamster
दरअसल, अब मैं वास्तव में बाइनरी कोड को देखता हूं: UIImageView ओवरराइड-ड्राउरक्ट: सेटकंट्स को कॉल करने के बजाए: अपने स्वयं के कैलियर पर। ऐसा लगता है कि अंततः यूआईएममेज ड्रॉ विधियों में कॉल किया जाता है, जो CGImageRef को पकड़ते हैं और इसे आकर्षित करते हैं। तो, एक ही परिणाम, लेकिन मेरे विवरण गलत थे। – iccir