HSL से RGB कन्वर्टर क्या है?
HSL का मतलब है ह्यू (Hue), सैचुरेशन (Saturation) और लाइटनेस (Lightness) — रंग को बताने का एक आसान और सहज तरीका। इसमें ह्यू कलर व्हील पर एक कोण होता है (0-360°), सैचुरेशन रंग की तीव्रता दर्शाता है (0-100%), और लाइटनेस बताता है कि रंग कितना हल्का या गहरा है (0-100%)। दूसरी ओर RGB उसी रंग को तीन चैनलों — रेड, ग्रीन और ब्लू — के रूप में दर्शाता है, जिनमें से हर एक की रेंज 0 से 255 तक होती है। यही फ़ॉर्मेट स्क्रीन, CSS और इमेज फ़ाइलों में इस्तेमाल होता है। यह कन्वर्टर किसी भी HSL कलर को उसके बिल्कुल सही RGB रूप में बदल देता है।
इसका इस्तेमाल कैसे करें
ह्यू को डिग्री में, सैचुरेशन को प्रतिशत में और लाइटनेस को प्रतिशत में दर्ज करें। कैलकुलेटर तुरंत आपको मिलता-जुलता rgb(r, g, b) मान दे देगा और साथ में एक लाइव प्रीव्यू स्वैच दिखाएगा, ताकि आप रंग को आँखों से देखकर पक्का कर सकें।
फ़ॉर्मूला समझें
सबसे पहले S और L को फ्रैक्शन (0-1) में बदलें। क्रोमा रंग की चमक-तीव्रता होती है: \(C = (1 - |2L - 1|)\cdot S\)। बीच का घटक है \(X = C\,(1 - |(H/60 \bmod 2) - 1|)\), और मैच वैल्यू \(m = L - C/2\) हर चीज़ को सही लाइटनेस तक शिफ़्ट कर देती है। ह्यू को 60° वाले छह सेक्सटेंट में बाँटा जाता है; हर सेक्सटेंट C, X और 0 को R, G, B के स्लॉट में एक ख़ास क्रम में बाँटता है। आख़िर में हर घटक में m जोड़ें और 255 से गुणा करें (और निकटतम पूर्णांक तक राउंड करें)।
$$(R,G,B) = \big( (R_1+m)\cdot 255,\; (G_1+m)\cdot 255,\; (B_1+m)\cdot 255 \big)$$
$$\text{where}\quad \left\{ \begin{aligned} C &= (1 - |2L - 1|)\cdot S \\ X &= C\,(1 - |(H/60 \bmod 2) - 1|) \\ m &= L - \tfrac{C}{2} \\ S &= \frac{\text{Saturation }(\%)}{100},\quad L = \frac{\text{Lightness }(\%)}{100} \\ H &= \text{Hue }(^{\circ}) \end{aligned} \right.$$
हल किया हुआ उदाहरण
HSL(210°, 50%, 60%) के लिए: \(S = 0.5\), \(L = 0.6\)। \(C = (1 - |1.2 - 1|) \times 0.5 = (1 - 0.2) \times 0.5 = 0.4\)। \(H/60 = 3.5\), इसलिए \(X = 0.4 \times (1 - |3.5 \bmod 2 - 1|) = 0.4 \times (1 - 0.5) = 0.2\)। \(m = 0.6 - 0.2 = 0.4\)। सेक्सटेंट 3 (\(\le H/60 < 4\)) से \((R',G',B') = (0, X, C) = (0, 0.2, 0.4)\)। अब m जोड़ें: $$(0.4, 0.6, 0.8) \times 255 = (102, 153, 204)$$
अक्सर पूछे जाने वाले सवाल
मेरे RGB नंबर राउंड क्यों हो जाते हैं? RGB चैनल 0 से 255 तक के पूर्णांक होते हैं, इसलिए स्केल की गई वैल्यू को निकटतम पूरे नंबर तक राउंड कर दिया जाता है।
सैचुरेशन 0% रखने पर क्या मिलता है? पूरी तरह डीसैचुरेटेड रंग एक ग्रे शेड बन जाता है, जिसकी वैल्यू सिर्फ़ लाइटनेस पर निर्भर करती है — तीनों RGB चैनल बराबर होते हैं।
अगर मैं 360 से ज़्यादा ह्यू डालूँ तो क्या वह रैप हो जाता है? हाँ। ह्यू को 360 के मॉड्यूलो में लिया जाता है, इसलिए 370° बिल्कुल 10° की तरह व्यवहार करता है।