rgb2hsv.js 671 B

12345678910111213141516171819202122232425
  1. //taken from https://stackoverflow.com/questions/17242144/javascript-convert-hsb-hsv-color-to-rgb-accurately
  2. function RGBtoHSV(r, g, b) {
  3. if (arguments.length === 1) {
  4. g = r.g, b = r.b, r = r.r;
  5. }
  6. var max = Math.max(r, g, b), min = Math.min(r, g, b),
  7. d = max - min,
  8. h,
  9. s = (max === 0 ? 0 : d / max),
  10. v = max / 255;
  11. switch (max) {
  12. case min: h = 0; break;
  13. case r: h = (g - b) + d * (g < b ? 6: 0); h /= 6 * d; break;
  14. case g: h = (b - r) + d * 2; h /= 6 * d; break;
  15. case b: h = (r - g) + d * 4; h /= 6 * d; break;
  16. }
  17. return {
  18. h: h,
  19. s: s,
  20. v: v
  21. };
  22. };