RGB (रेड ग्रीन ब्लू) रंग मॉडल का मुख्य उद्देश्य इलेक्ट्रॉनिक प्रणालियों में छवियों, जैसे कि टीवी और कंप्यूटर के संवेदन, प्रतिनिधित्व और प्रदर्शन के लिए है
एचएसएल (ह्यू संतृप्ति लपट) एक वैकल्पिक रंग मॉडल है, जिसे 1970 के दशक में कंप्यूटर ग्राफिक्स शोधकर्ताओं द्वारा डिजाइन किया गया था, जिस तरह से मानव दृष्टि रंग बनाने की विशेषताओं को मानती है।
यहाँ RGB और HSL के लिए विकि लेख हैं । एचएसएल में गणना करना ग्राफिक्स कार्यक्रमों के लिए सामान्य है, और बाद में अधिकांश स्क्रीन के लिए पसंदीदा प्रारूप में परिवर्तित हो जाता है: आरजीबी।
कार्य एक फ़ंक्शन / प्रोग्राम लिखना है जो एक इनपुट के रूप में एचएसएल लेता है और आरजीबी आउटपुट करता है।
आप I / O के लिए अपना पसंदीदा प्रतिनिधित्व चुन सकते हैं, जब तक कि उनके बीच सुसंगत न हो।
उदाहरण के लिए, वे 3 तत्वों के साथ एक सरणी / टपल या 3 नामित गुणों के साथ एक वस्तु हो सकता है h
, s
और l
है, लेकिन मैं एक पूर्णांक (खोने परिशुद्धता) के रूप में एचएसएल प्राप्त करने और एक RGB पूर्णांक outputting जैसे अन्य चालाक रूपों को स्वीकार करेंगे।
इनपुट को सीमा और प्रारूप में सुरक्षित माना जा सकता है, यह दोनों आप तय कर सकते हैं। मैं दृढ़ता से या तो पर्वतमाला का सुझाव 0-1 0-1 0-1
या 0-360 0-100 0-100
एचएसएल के लिए, और 0-1 0-1 0-1
या 0-255 0-255 0-255
आरजीबी के लिए।
उपरोक्त दोनों को निर्दिष्ट करने के लिए प्रत्येक उत्तर की आवश्यकता होती है, और यदि आपने विशेष रूप से उन पर गर्व किया है, भले ही आपके पास अन्य विविधताओं की तुलना में कम वर्ण न हों, तो अपने उत्तरों में विभिन्न विविधताएँ रखें। शीर्ष पर सबसे छोटा रखो।
छद्म परीक्षण के मामले 0-360 0-100 0-100
→0-255 0-255 0-255
h s l → r g b
0 0 0 → 0 0 0
90 56 17 → 43 68 19
202 19 39 → 81 104 118
72 55 26 → 88 103 30
रूपांतरण के सूत्र यहां मिल सकते हैं :
रूपांतरण की कल्पना करने का यह एक अच्छा तरीका है:
a-b
गैर-पूर्णांक मानों के साथ काम करते समय अंकन का उपयोग करना अपने आप में गलत है, लेकिन मैं कहूंगा कि प्रश्न को अधिक पठनीय रखना ठीक है। अगर कोई और शिकायत करता है, तो मैं इसे फिर से
[0,360)
तब के मानक अंकन का उपयोग करें :)
H
की0-360
है[0,360)
, यह बेहतर रूप में लिखा जाएगा0-359
?