मुझे एक CGContextDrawImage कॉल में EXEC_BAD_ACCESS त्रुटियां मिल रही हैं और इसे वापस ढूंढने का प्रयास कर रही हैं। मेरे पास एक पीएनजी छवि है और UIImagePNGRepresentation चला रहा है o यह मुझे NSData उदाहरण देता है।आईएसडी एसडीके पर NSData को CGDataProviderRef में कैसे परिवर्तित करें?
मुझे इसे CGImageRef उदाहरण में कनवर्ट करने की आवश्यकता है, इसलिए मैं CGImageCreateWithPNGDataProvider विधि को इस CGImageRef के साथ चला सकता हूं।
मैंने दो तरीकों की कोशिश की: 1) इसे कास्ट करने के लिए।
CGImageRef ref = (CGDataProvider) nsdata;
2) CGDataProviderCreateWithCFData (nsdata) चलाने के लिए;
पहला मामला खाली छवि देता है, हालांकि कमांड विफल नहीं होता है। कारण मैंने दूसरे मामले की कोशिश की, भले ही मेरे पास NSData है और CFData नहीं है क्योंकि मुझे याद है कि यह दोनों को स्वीकार करता है। जो भी कारण हो, यह इस वजह से विफल रहा है।
क्या कोई तरीका है कि मैं एक CGImage बनाने के लिए अपने पीएनजी एनएसडेटा का उपयोग कर सकता हूं जो दूषित नहीं है? कृपया मदद करें।
थैंक्स
'image.CGImage' निश्चित रूप से की तुलना में' (CGImageRef) [(आईडी) CGImageCreateWithPNGDataProvider ((CGDataProviderRef) [(आईडी) CGDataProviderCreateWithNSData ((CFDataRef) UIImagePNGRepresentation (छवि)) autorelease बेहतर है ], 0,0,0) autorelease] ' –
ध्यान दें कि UIKit थ्रेड-सुरक्षित नहीं है, इसलिए पृष्ठभूमि धागे पर 'UIImage' उदाहरण बनाना समस्याएं पैदा कर सकता है। कुछ मामलों में सीधे 'CGImageRef' बनाना बेहतर होता है। ऐप्पल के प्रलेखन (https://developer.apple.com/reference/uikit/uiimage) के अनुसार – cheeesus
@cheeesus, पृष्ठभूमि धागे में UIImage उदाहरण बनाने के लिए सुरक्षित है: * "छवि वस्तुओं की अपरिवर्तनीय प्रकृति का भी अर्थ है कि वे हैं किसी भी धागे से बनाने और उपयोग करने के लिए सुरक्षित। "* – Arda