दिलचस्प पोस्ट
`Git:` urls को `http:` यूआरएल में कनवर्ट कैसे करें कैसे स्मृति में stdout बफर और एक समर्पित धागा से इसे लिखने के लिए वर्तमान संदर्भ में नाम 'कॉन्फ़िगरेशन प्रबंधक' मौजूद नहीं है बेस 64 स्ट्रिंग के लिए छवि पथ कन्वर्ट एचटीएमएल 5 फेविकॉन – समर्थन? किसी अन्य मॉड्यूल से एक मॉड्यूल वेरिएबल कैसे बदल सकता है? जावा ट्रीआइम कंपैटर अजगर smtplib के साथ मेल त्रुटि भेज रहा है दो डेटाबेस के बीच MySQL डेटाबेस समन्वयन समारोह php redeclare नहीं कर सकते दो तिथियों के बीच का अंतर? Regex exec केवल पहले मैच लौट रहा है शाखा की भविष्यवाणी विफलता के लिए एक सशर्त कदम कमजोर क्यों नहीं है? एंड्रॉइड में प्रत्येक 10 सेकंड के बाद डेटा प्रदर्शित करें आर में पुनरावृत्त मूल्यों का अनुक्रम

आप एक #xxxxxx रंग के रंग कैसे प्राप्त करते हैं?

आप '#rrggbb' के रूप में दिए गए रंग के रंग घटक कैसे निकाल सकते हैं?

वेब के समाधान से एकत्रित समाधान "आप एक #xxxxxx रंग के रंग कैसे प्राप्त करते हैं?"

यदि आप आरजीबी से एचएसएल को कन्वर्ट करने के लिए खोजते हैं , तो आपको कई एल्गोरिदम मिलेंगे, जिनमें सर्जी से जुड़े विकिपीडिया लेख शामिल हैं

सबसे पहले, हेक्स रंग संकेतन के आरजीबी घटकों को निकालें।

var color='#c7d92c'; // A nice shade of green. var r = parseInt(color.substr(1,2), 16); // Grab the hex representation of red (chars 1-2) and convert to decimal (base 10). var g = parseInt(color.substr(3,2), 16); var b = parseInt(color.substr(5,2), 16); 

वह आपको बाइट (0-255) अपने रंग का प्रतिनिधित्व करेगा। इस मामले में, 199, 217, 44

फिर आप रंगों की गणना करने के लिए विकिपीडिया लेख से फ़ार्मुलों का उपयोग कर सकते हैं, या बेशर्मी किसी और के कोड को चोरी कर सकते हैं :

 function rgbToHsl(r, g, b){ r /= 255, g /= 255, b /= 255; var max = Math.max(r, g, b), min = Math.min(r, g, b); var h, s, l = (max + min) / 2; if(max == min){ h = s = 0; // achromatic }else{ var d = max - min; s = l > 0.5 ? d / (2 - max - min) : d / (max + min); switch(max){ case r: h = (g - b) / d + (g < b ? 6 : 0); break; case g: h = (b - r) / d + 2; break; case b: h = (r - g) / d + 4; break; } h /= 6; } return [h, s, l]; } 

(दस्तावेज़ और एक hslToRgb() फ़ंक्शन के लिए स्रोत पृष्ठ देखें।)

अब हम उन दो स्निपेट को एक साथ रख सकते हैं और रंग प्राप्त कर सकते हैं:

 var hue = rgbToHsl(r, g, b)[0] * 360; 

[0] रंग को पकड़ना है – फ़ंक्शन एक सरणी देता है ( [h,s,l] )। हम 360 से गुणा करते हैं क्योंकि 0 और 1 के बीच के मूल्य के रूप में वापस आ गया है; हम इसे डिग्री में परिवर्तित करना चाहते हैं।

#c7d92c का उदाहरण रंग के साथ, hue #c7d92c होगा फ़ोटोशॉप का रंग पिकर कहता है कि उस रंग का रंग 66 डिग्री है इसलिए ऐसा लगता है कि हम अच्छे हैं!

विकिपीडिया लेख का एक सूत्र है जो कुछ ऐसा दिखता है जिसे आसानी से लागू किया जा सकता है:

http://en.wikipedia.org/wiki/Hue#Computing_hue_from_RGB

संपादित करें: यहां एक फ़ंक्शन है जो उन फ़ार्मुलों का उपयोग करता है:

 function getHue(color) { var r = parseInt(color.substring(0,2),16)/255; var g = parseInt(color.substring(2,4),16)/255; var b = parseInt(color.substring(4,6),16)/255; var hue; if ((r >= g) && (g >= b)) { hue = 60*(gb)/(rb); } else if ((g > r) && (r >= b)) { hue = 60*(2 - (rb)/(gb)); } //... continue here return hue; } alert(getHue('FF0000')); // correctly returns 0 alert(getHue('408000')); // correctly returns 90 alert(getHue('0000FF')); // not implemented yet 

अन्य कोणों के लिए उस विकिपीडिया लेख में तालिका से सूत्रों का उपयोग करना जारी रखें।

 hue = Atan2(1.732050808 * (G - B), (2 * R - G - B)) * 57.295779513; 

http://en.wikipedia.org/wiki/Hue

ह्यू = एतन 2 (चौकोर (3) * (जी – बी), 2 * आर – जी – बी)

परिणाम ध्रुवीय निर्देशांक में होगा। 180 से गुणा करें और पीई के बराबर कोण में कनवर्ट करें

मैंने इस मुद्दे पर भी कई वर्षों के बाद ठोकर खाई है, इसी तरह मैंने इसके आसपास काम किया है।

क्रेडिट: एचएसएलपीकर। के ब्रैंडन मैथिस , कोड यहां से लिया गया था

 function hexToRgb (color) { let hex = color[0] === '#' ? color.slice(1) : color; let c; // expand the short hex by doubling each character, fc0 -> ffcc00 if (hex.length !== 6) { hex = ((() => { const result = []; for (c of Array.from(hex)) { result.push(`${c}${c}`); } return result; })()).join(''); } const colorStr = hex.match(/#?(.{2})(.{2})(.{2})/).slice(1); const rgb = colorStr.map(col => parseInt(col, 16)); rgb.push(1); return rgb; } function rgbToHsl (rgb) { const r = rgb[0] / 255; const g = rgb[1] / 255; const b = rgb[2] / 255; const max = Math.max(r, g, b); const min = Math.min(r, g, b); const diff = max - min; const add = max + min; const hue = min === max ? 0 : r === max ? (((60 * (g - b)) / diff) + 360) % 360 : g === max ? ((60 * (b - r)) / diff) + 120 : ((60 * (r - g)) / diff) + 240; const lum = 0.5 * add; const sat = lum === 0 ? 0 : lum === 1 ? 1 : lum <= 0.5 ? diff / add : diff / (2 - add); const h = Math.round(hue); const s = Math.round(sat * 100); const l = Math.round(lum * 100); const a = rgb[3] || 1; return [h, s, l, a]; } 

मैंने हेक्स रंग की सरणी को एच / एस / एल घटकों का वर्णन करने वाली तारों की सरणियों में कनवर्ट करने के लिए उन 2 फ़ंक्शन के आसपास एक छोटा आवरण लिखा है

 function hexToHsl (color) { const rgb = hexToRgb(color); const hsl = rgbToHsl(rgb); return `original: ${ color } - H: ${ hsl[0] } S: ${ hsl[1] } L: ${ hsl[2] }`; } 

उपयोग:

 var colors = ['#51bce6','#6dcff6','#829CBD','#565a5c'] colors.map(color => hexToHsl(color)) => ["original: #51bce6 - H: 197 S: 75 L: 61", "original: #6dcff6 - H: 197 S: 88 L: 70", "original: #829CBD - H: 214 S: 31 L: 63", "original: #565a5c - H: 200 S: 3 L: 35"]