2012-02-29 15 views
7

मैं एक CGContext का उपयोग कर कुछ ड्राइंग कर रहा हूँ। मैं वर्तमान में इस तरह की एक PNG फ़ाइल का उपयोग कर ड्राइंग मास्किंग कर रहा हूँ:एक CGPathRef के साथ CGContext मास्किंग?

UIImage * myImage = [UIImage imageNamed:@"frame.png"]; 
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextClipToMask(context, self.view.bounds, myImage.CGImage); 

यह ठीक काम करता है, लेकिन अब मैं अपने मुखौटा के रूप में एक मौजूदा CGPathRef उपयोग करना चाहते हैं। क्या मुझे CGPathRef को ऊपर के रूप में UIImage और मुखौटा में परिवर्तित करना चाहिए? यदि ऐसा है तो मैं रूपांतरण करने के बारे में कैसे जाऊं? -OR- क्या इससे संपर्क करने का कोई बेहतर तरीका है?

उत्तर

10
CGContextAddPath(context, yourPath); 
CGContextClip(context); 
+1

यह rects और अंडाकार के लिए अच्छा काम करता है। लेकिन अगर मेरे द्वारा addArcWithCenter द्वारा पथ बनाया गया है तो मेरे लिए काम नहीं करता है: त्रिज्या: ... और जब मुझे रखने के लिए केवल एक पिक्सेल लाइन की आवश्यकता होती है। –

+0

अगर हम इसे क्लिप नहीं करना चाहते हैं तो हमें क्या करना चाहिए? उदाहरण के लिए यदि हम किसी छवि पर पथ के किनारे पर क्लिप किए बिना कस्टम पथ को मास्क करना चाहते हैं? @cxa –