javascript中的RGB到HSV颜色?

有没有人知道javascript中的函数将RGB颜色转换为HSV颜色格式?

(或jQuery)

这是一个独立的function:

function rgb2hsv () { var rr, gg, bb, r = arguments[0] / 255, g = arguments[1] / 255, b = arguments[2] / 255, h, s, v = Math.max(r, g, b), diff = v - Math.min(r, g, b), diffc = function(c){ return (v - c) / 6 / diff + 1 / 2; }; if (diff == 0) { h = s = 0; } else { s = diff / v; rr = diffc(r); gg = diffc(g); bb = diffc(b); if (r === v) { h = bb - gg; }else if (g === v) { h = (1 / 3) + rr - bb; }else if (b === v) { h = (2 / 3) + gg - rr; } if (h < 0) { h += 1; }else if (h > 1) { h -= 1; } } return { h: Math.round(h * 360), s: Math.round(s * 100), v: Math.round(v * 100) }; } 

以及如何使用它:

 console.log( rgb2hsv(60, 120, 180) ); 

你可以使用TinyColor 。

如果你需要/喜欢一个jQuery插件,你可以看看jquery-colors 。

试试这个: http : //blog.crondesign.com/2011/02/actionscriptjavascript-colour-mode.html它的动作脚本但它们几乎是一样的,所以只需做一些调整。

鉴于npm越来越受欢迎,我认为值得通过简单的API提及包含所有这些function的包:

npm安装colorsys

 var colorsys = require('colorsys') colorsys.rgb_to_hsv({ r: 255, g: 255, b: 255 }) // { h: 0 , s: 0 , v: 100 } 

对于浏览器:

 colorsys.rgb_to_hex(h, s, v) // #hexcolor 

正如我在Javascript中回答的那样,准确地将HSB / HSV颜色转换为RGB