GetPixel
दो कारणों के लिए धीमी है:
जब से तुम मतदान स्क्रीन हैं - GetPixel
के लिए हर कॉल वीडियो ड्राइवर के लिए एक सौदे, जो बारी में पिक्सेल लेता है की ओर जाता है वीडियो मेमोरी से डेटा।
डीआईबी पर GetPixel
का उपयोग करके कॉन्सस्ट्रास्ट में बहुत तेज है।
वैसे भी GetPixel
निर्देशांक कतरन/परिवर्तनों और आदि सहित कई चीज़ें करता
तो है कि अगर आप एक बार में कई पिक्सेल मान क्वेरी करने के लिए उपयोग कर रहे हैं - आप एक ही में यह व्यवस्था करने का प्रयास करना चाहिए जीडीआई/वीडियो चालक के लिए लेनदेन।
जीडीआई का उपयोग करके आपको पर्याप्त आकार का डीआईबी बनाना चाहिए (CreateDIBSection
देखें)। सृजन के बाद आपको छवि बिट्स डेटा पर प्रत्यक्ष सूचक दिया जाएगा। फिर छवि भाग को अपने डीआईबी पर कॉपी करें (BitBlt
देखें)। इससे पहले कि आप वास्तव में डीआईबी की सामग्री की जांच करें (क्योंकि वीडियो ड्राइवर एसिंक्रोनस ड्राइंग कर सकते हैं) से पहले GdiFlush
पर कॉल करना न भूलें।
जीडी + का उपयोग करके आप वास्तव में थोड़ा सरल वाक्यविन्यास के साथ ऐसा ही कर सकते हैं।
आपको किस तरह के उपयोग की आवश्यकता है? स्क्रीन पर एक क्षेत्र को पकड़ना और उसके बाद नमूना पिक्सेल को पकड़ना उपयोगी हो सकता है। – hometoast
मेरा ऐप उपयोगकर्ता को रीयलटाइम में स्क्रीन पर कहीं भी (मेरे ऐप के बाहर) रंग का नमूना देने की अनुमति देता है। +1 किसी क्षेत्र में प्रतिबंधित करने के बारे में अच्छा विचार: मैं देखूंगा कि मैं ऐसा कर सकता हूं या नहीं। – stucampbell