2014-07-14 7 views
10

जैसा कि मैं समझता हूं HSL and HSB colour spaces बहुत समान हैं, दोनों रंग के लिए 0-360 रंग पहिया का उपयोग करते हैं और संतृप्ति के लिए 0-1 मान का उपयोग करते हैं। उनके बीच एक अंतर यह है कि एचएसबी मॉडल में आपके पास चमक है, जहां 0 काला है और 1 पूर्ण तीव्रता पर रंग है, जबकि एचएसएल में आपके पास हल्कापन/चमक है, जहां 0 अभी भी काला है लेकिन 1 सफेद है।क्या नेट रंग संरचना एचएसबी या एचएसएल कलर स्पेस का उपयोग करती है?

.net Color struct आरजीबी स्थान का उपयोग करता है, लेकिन GetHue(), GetSaturation() और GetBrightness() कार्य करती है।

यहां प्रलेखन भ्रमित है। GetBrightness() के लिए:

/// <summary>Gets the hue-saturation-brightness (HSB) brightness value for this 
/// System.Drawing.Color structure.</summary> 

ठीक है, तो समझ में आता है, नेट HSB का उपयोग करने की ...

/// <returns>The brightness of this System.Drawing.Color. The brightness ranges 
/// from 0.0 through 1.0, where 0.0 represents black and 1.0 represents white. 
/// </returns> 

अरे ... तो अधिकतम मूल्य सफेद का प्रतिनिधित्व करता है, बल्कि प्रतिभाशाली रंग से प्रकट होता है। इस तथ्य के बावजूद कि उनके दस्तावेज़ और नामकरण लगातार चमक को संदर्भित करते हैं, मुझे पूरा यकीन है कि लौटाया गया मूल्य वास्तव में हल्कापन/चमकदारता है, यानी नेट वास्तव में एचएसएल मॉडल का उपयोग करता है, न कि एचएसबी।

क्या कोई इसकी पुष्टि कर सकता है? क्या यह प्रलेखन में एक त्रुटि है, GetBrightness() में कोई त्रुटि है, या क्या मैं किसी भी तरह सिद्धांत को गलत समझ रहा हूं?

उत्तर

6

आपके द्वारा लिंक किया गया पृष्ठ रंगों की एक श्रृंखला के लिए एल और वी (उर्फ बी) के उदाहरण देता है। उदाहरणों के लिए Color.FromArgb(255, 255, 0, 0).GetBrightness (0.5) के परिणाम की तुलना में पता चलता है कि .NET एचएसएल मॉडल का उपयोग कर रहा है। Color.FromArgb(255, 128, 255, 255).GetSaturation (1.0) की एक जांच इसकी पुष्टि करती है।

अन्य लोगों ने वही चीज़ खोज ली है, उदा। क्रिस जैक्सन (एमएसएफटी) Converting from HSB to RGB in .NET: "अंतर्निहित मुद्दा यह है कि .NET Framework रंग अंतरिक्ष को एचएसबी के रूप में संदर्भित करता है, भले ही यह वास्तव में एचएसएल है। (रंग पिकर नियंत्रण इसे सही ढंग से संदर्भित करता है।) ढांचे में रंग संरचना प्रलेखन में वर्णित गेटब्राइटनेस() विधि प्रदान करता है, "इस रंग संरचना के लिए" ह्यू-संतृप्ति-चमक (एचएसबी) चमक मूल्य प्राप्त करता है। "क्या यह गलत है? आप शर्त लगाते हैं। इसे गेटलिमिनेंस() कहा जाना चाहिए।

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