2012-03-04 13 views
9

के भीतर है या नहीं, मैं यह पता लगाने की कोशिश कर रहा हूं कि कोई CGPoint किसी छवि के आकार में है या नहीं। छवि एक साधारण काला आकार है जैसे कि नीचे दिए गए दो। मैं एक ऐसी विधि बनाना चाहता हूं जो निर्धारित करता है कि एक CGPoint उस आकार के काले क्षेत्र में है या नहीं। कि एक संदर्भ के रूप 1) कुछ में छवि टर्निंग कि कोड (सुनिश्चित करें कि छवि प्रसंस्करण की किस तरह इस का प्रयोग करेंगे नहीं या कितनी)निर्धारित करें कि CGPoint छवि क्षेत्र

2 के साथ पढ़ा जा सकता है) का उपयोग करना:

मैं इस दो चीजों की आवश्यकता है यह निर्धारित करने के लिए कि कोई CGPoint इसके भीतर है या नहीं।

किसी भी मदद या विचारों की सराहना की। मैंने पहले कोडिंग के इमेज प्रोसेसिंग प्रकार को कभी नहीं किया है। धन्यवाद!

enter image description here

+4

आप अपने चयन के प्रारूप में आपके द्वारा नियंत्रित डेटा द्वारा समर्थित 'CGBitmapContext' बना सकते हैं। आप इसे 1x1 संदर्भ बना सकते हैं, सीटीएम सेट करें जैसे कि जिस बिंदु पर आप परीक्षण करना चाहते हैं वह मूल पर सही है, और अपनी छवि को संदर्भ में खींचें। फिर यह देखने के लिए अपने डेटा का परीक्षण करें कि क्या आपके पास ब्लैक पिक्सेल या एक सफेद पिक्सेल है या नहीं। –

+2

@ केविन Ballard: क्यों एक जवाब के रूप में प्रदान नहीं करते? एक समाधान की तरह लगता है। – DarkDust

+1

@ डार्कडस्ट: क्योंकि मैं वास्तव में कुछ कोड लिखने के लिए समय नहीं लेना चाहता था। –

उत्तर

11

ओले Begemann के OBShapedButton पर एक नजर डालें। वहां आपको UIImage श्रेणी मिलेगी जिसमें ColorAtPixel विधि शामिल है। मान लीजिए कि आप क्या खोज रहे हैं।

फिर आप के साथ कुछ पिक्सेल की UIColor प्राप्त कर सकते हैं:

UIImage *image = [UIImage imageWithCGImage:yourCGImage]; 
CGPoint point = CGPointMake(pointx,pointy); 
UIColor *pixelColor = [image colorAtPixel:point]; 

हो रही आरजीबी मूल्यों आसान बनाने के लिए आप भी uicolor-utilities पर एक नज़र ले सकता है। UIColor-Expanded श्रेणी का उपयोग करके आप बस निर्धारित कर सकते हैं कि हम लाल और नीले रंग के घटक कहें। यदि वे कम हैं (पिक्सेल अंधेरा है) तो परीक्षण बिंदु आकार के अंदर है।

CGFloat redComp = [pixelColor red]; 
CGFloat blueComp = [pixelColor blue]; 

BOOL isInsideShape = ((redComp < 0.5) && (blueComp < 0.5)); 
+1

वाह, इसके लिए धन्यवाद! – Mat

संबंधित मुद्दे