Skip to content

Instantly share code, notes, and snippets.

@jcsrb
Created September 28, 2013 14:01
Show Gist options
  • Save jcsrb/6742358 to your computer and use it in GitHub Desktop.
Save jcsrb/6742358 to your computer and use it in GitHub Desktop.
color = {
HSBToRGB: function(hsb) {
var rgb = {},
h = Math.round(hsb.h),
s = Math.round(hsb.s * 255 / 100),
v = Math.round(hsb.b * 255 / 100);
if (s == 0)
rgb.r = rgb.g = rgb.b = v;
else {
var t1 = v,
t2 = (255 - s) * v / 255,
t3 = (t1 - t2) * (h % 60)/60;
if (h == 360)
h = 0;
if (h < 60)
rgb.r = t1, rgb.b = t2, rgb.g = t2 + t3;
else if (h < 120)
rgb.g = t1, rgb.b = t2, rgb.r = t1 - t3;
else if (h < 180)
rgb.g = t1, rgb.r = t2, rgb.b = t2 + t3;
else if (h < 240)
rgb.b = t1, rgb.r = t2, rgb.g = t1 - t3;
else if (h < 300)
rgb.b = t1, rgb.g = t2, rgb.r = t2 + t3;
else if (h < 360)
rgb.r = t1, rgb.g = t2, rgb.b = t1 - t3;
else
rgb.r = 0, rgb.g = 0, rgb.b = 0;
}
return {r: Math.round(rgb.r), g: Math.round(rgb.g), b: Math.round(rgb.b)};
},
RGBToHex: function(rgb) {
return ('00000'+(rgb.r<<16 | rgb.g<<8 | rgb.b).toString(16)).slice(-6);
},
HSBToHex: function(hsb) {
return this.RGBToHex(this.HSBToRGB(hsb));
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment