Maison > Article > interface Web > Comment réaliser la conversion entre RVB et HSL en js ? Méthodes de conversion RVB et HSL entre eux (exemple de code)
Comment js réalise-t-il la conversion entre rgb et hsl ? Cet article vous présentera comment utiliser js pour convertir entre RVB et HSL. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
Dans l'article précédent [Comment définir la valeur de couleur en CSS ? rgb() définit la couleur ] et [ Une brève discussion sur la façon d'utiliser hsl() et hsla() pour définir les valeurs de couleur en CSS ] Nous avons présenté comment utiliser rgb ou hsl pour définir les valeurs de couleur dans la méthode CSS, en fait, les valeurs de couleur RVB et les valeurs de couleur HSL peuvent être converties. Ci-dessous, nous utiliserons des exemples de code pour permettre à tout le monde de comprendre la méthode d'implémentation de conversion des valeurs de couleur RVB et de la couleur HSL. valeurs.
js implémente la conversion de la valeur de couleur RVB en hsl
Exemple de code :/** * RGB 颜色值转换为 HSL. * 转换公式参考自 http://en.wikipedia.org/wiki/HSL_color_space. * r, g, 和 b 需要在 [0, 255] 范围内 * 返回的 h, s, 和 l 在 [0, 1] 之间 * * @param Number r 红色色值 * @param Number g 绿色色值 * @param Number b 蓝色色值 * @return Array HSL各值数组 */ 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 [Math.floor(h*100), Math.round(s*100)+"%", Math.round(l*100)+"%"]; }
js convertit la valeur de couleur hsl en rgb
Exemple de code :/** * HSL颜色值转换为RGB. * 换算公式改编自 http://en.wikipedia.org/wiki/HSL_color_space. * h, s, 和 l 设定在 [0, 1] 之间 * 返回的 r, g, 和 b 在 [0, 255]之间 * * @param Number h 色相 * @param Number s 饱和度 * @param Number l 亮度 * @return Array RGB色值数值 */function hslToRgb(h, s, l) { var r, g, b; if(s == 0) { r = g = b = l; // achromatic } else { var hue2rgb = function hue2rgb(p, q, t) { if(t < 0) t += 1; if(t > 1) t -= 1; if(t < 1/6) return p + (q - p) * 6 * t; if(t < 1/2) return q; if(t < 2/3) return p + (q - p) * (2/3 - t) * 6; return p; } var q = l < 0.5 ? l * (1 + s) : l + s - l * s; var p = 2 * l - q; r = hue2rgb(p, q, h + 1/3); g = hue2rgb(p, q, h); b = hue2rgb(p, q, h - 1/3); } return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; }Résumé : Ce qui précède est tout le contenu de cet article, le code est très simple, vous peut le démarrer. Essayez-le. J'espère que cela sera utile à l'apprentissage de tout le monde. Pour plus de didacticiels connexes, veuillez visiter le
Tutoriel vidéo JavaScript, le Tutoriel vidéo jQuery, le Tutoriel bootstrap !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!