rgbToHsb function
Implementation
List<double> rgbToHsb(double r, double g, double b) {
double hue = 0;
r = r / 255;
g = g / 255;
b = b / 255;
double max = math.max(math.max(r, g), b);
double min = math.min(math.min(r, g), b);
double brightness = max;
double delta = max - min;
double saturation = max == 0 ? 0 : delta / max;
if (max == min) {
hue = 0; // achromatic
} else {
if (max == r) {
hue = (g - b) / delta + (g < b ? 6 : 0);
} else if (max == g) {
hue = (b - r) / delta + 2;
} else if (max == b) {
hue = (r - g) / delta + 4;
}
hue /= 6;
// switch (max) {
// case r:
// hue = (g - b) / delta + (g < b ? 6 : 0)
// break
// case g:
// hue = (b - r) / delta + 2
// break
// case b:
// hue = (r - g) / delta + 4
// break
// }
// hue /= 6
}
return [hue, saturation, brightness];
}