2010-12-13 15 views
5

मैं एक वेब गेम के लिए एक साधारण बॉट बनाने की कोशिश कर रहा हूं, इसलिए मैं स्क्रीन पर पिक्सेल के रंग को पढ़ने में सक्षम होना चाहता हूं। मैंने इसे विंडोज पर गेट पिक्सेल() के साथ किया है, लेकिन मुझे ओएस एक्स पर इसका पता लगाना प्रतीत नहीं होता है। मैं ऑनलाइन देख रहा था और glReadPixel में आया था। जब मैंने एक्सकोड में एक सरल कमांड लाइन टूल बनाया, तो मैंने निम्नलिखित कोड डाला। हालांकि, मैं इसे काम नहीं कर सकता। मैं इस से एक EXC_BAD_ACCESS त्रुटि प्राप्त हो रही:स्क्रीन के पिक्सेल को कैसे पढ़ा जाए?

GLfloat r; 
glReadPixels(0, 0, 1, 1, GL_RED, GL_FLOAT, &r); 

मैंने सोचा था कि इसके बाद के संस्करण कोड लाल आर में (0,0) में पिक्सेल का मूल्य संग्रहीत करेंगे। ओह, मैं एक स्क्रीन शॉट दृष्टिकोण लेने से बचना चाहता हूं क्योंकि यह धीमा है। कोई मदद?

पीएस कमांड लाइन टूल के साथ, मेरा अंतिम लक्ष्य बैश स्क्रिप्ट या एक सेबस्क्रिप्ट बनाना है, क्योंकि मेरे पास पहले से कमांड लाइन उपकरण है जो स्क्रीन पर क्लिक कर सकता है।

+0

क्या आपके पास 'glReadPixels() 'कॉल करते समय सक्रिय ओपनजीएल संदर्भ है? – genpfault

+0

नहीं। क्या आप मुझे उचित दिशा में इंगित कर सकते हैं? – hassaanm

+0

मैं सक्रिय ओपनजीएल संदर्भ के लिए मुख्य स्क्रीन होना चाहता हूं। – hassaanm

उत्तर

4

glReadPixels केवल फ्रेम बफर (वह क्षेत्र जिसमें आपका ग्राफिक्स कार्ड खींचता है) से पिक्सेल पढ़ने के बारे में चिंतित है।

"स्क्रीन" से पिक्सेल पढ़ना ओपनजीएल से संबंधित नहीं है। इसके लिए आपको सिस्टम-विशिष्ट फ़ंक्शंस की आवश्यकता है।

+0

ओह धन्यवाद। क्या आपको पता चलेगा कि मैक पर स्क्रीन पिक्सेल कैसे प्राप्त कर पाऊंगा? – hassaanm

+0

नहीं, मैं macs grok नहीं है। :) – Kos

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