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));