function RGB2HSV()

in web/js/complement.js [14:28]


function RGB2HSV(rgb) {
    let hsv = new Object()
    let max = max3(rgb.r, rgb.g, rgb.b)
    let dif = max - min3(rgb.r, rgb.g, rgb.b)
    hsv.saturation = (max == 0.0) ? 0 : (100 * dif / max)
    if (hsv.saturation == 0) hsv.hue = 0
    else if (rgb.r == max) hsv.hue = 60.0 * (rgb.g - rgb.b) / dif
    else if (rgb.g == max) hsv.hue = 120.0 + 60.0 * (rgb.b - rgb.r) / dif
    else if (rgb.b == max) hsv.hue = 240.0 + 60.0 * (rgb.r - rgb.g) / dif
    if (hsv.hue < 0.0) hsv.hue += 360.0
    hsv.value = Math.round(max * 100 / 255)
    hsv.hue = Math.round(hsv.hue)
    hsv.saturation = Math.round(hsv.saturation)
    return hsv
}