JSFiddle - React, Tailwind, and code Playground
by gfosco
JavaScript
function RGB2HSV (iR, iG, iB) {
var r= iR / 255;
var g = iG / 255;
var b = iB / 255;
var minVal = Math.min(r, g, b);
var maxVal = Math.max(r, g, b);
var delta = maxVal - minVal;
var v = maxVal;
var h = 0;
var s = 0;
if (delta != 0) {
s = delta / maxVal;
var del_R = (((maxVal - r) / 6) + (delta / 2)) / delta;
var del_G = (((maxVal - g) / 6) + (delta / 2)) / delta;
var del_B = (((maxVal - b) / 6) + (delta / 2)) / delta;
if (r == maxVal) {h = del_B - del_G;}
else if (g == maxVal) {h = (1 / 3) + del_R - del_B;}
else if (b == maxVal) {h = (2 / 3) + del_G - del_R;}
if (h < 0) {h += 1;}
if (h > 1) {h -= 1;}
}
h *= 360;
s *= 100;
v *= 100;
return [h,s,v];
}
alert(RGB2HSV(255,255,255));