pixelwit
08-20-2002, 04:33 AM
I've managed to cobble this code together form various sources which converts from RGB to HSB:function rgb2Hex (r,g,b){
return(r<<16 | g<<8 | b);
}
function hsb2rgb(h, s, v) {
var r, g, b;
if (h == 360) {h = 0;}
else if (h>360 or h<0) {return 0;}
s /= 100;
v /= 100;
h /= 60;
var i = Math.floor(h);
var f = h-i;
var p = v*(1-s);
var q = v*(1-(s*f));
var t = v*(1-(s*(1-f)));
if (i==0) {r=v; g=t; b=p;}
else if (i==1) {r=q; g=v; b=p;}
else if (i==2) {r=p; g=v; b=t;}
else if (i==3) {r=p; g=q; b=v;}
else if (i==4) {r=t; g=p; b=v;}
else if (i==5) {r=v; g=p; b=q;}
r = Math.floor(r*255);
g = Math.floor(g*255);
b = Math.floor(b*255);
return (rgb2Hex(r, g, b));
}Now I'd like to be able to go the other way and convert from RGB to HSB. Can anyone lend a hand?
Thanks for your time,
-PiXELWiT
http://www.pixelwit.com
return(r<<16 | g<<8 | b);
}
function hsb2rgb(h, s, v) {
var r, g, b;
if (h == 360) {h = 0;}
else if (h>360 or h<0) {return 0;}
s /= 100;
v /= 100;
h /= 60;
var i = Math.floor(h);
var f = h-i;
var p = v*(1-s);
var q = v*(1-(s*f));
var t = v*(1-(s*(1-f)));
if (i==0) {r=v; g=t; b=p;}
else if (i==1) {r=q; g=v; b=p;}
else if (i==2) {r=p; g=v; b=t;}
else if (i==3) {r=p; g=q; b=v;}
else if (i==4) {r=t; g=p; b=v;}
else if (i==5) {r=v; g=p; b=q;}
r = Math.floor(r*255);
g = Math.floor(g*255);
b = Math.floor(b*255);
return (rgb2Hex(r, g, b));
}Now I'd like to be able to go the other way and convert from RGB to HSB. Can anyone lend a hand?
Thanks for your time,
-PiXELWiT
http://www.pixelwit.com