rgbToHsv function
Implementation
List<num?> rgbToHsv(num r, num g, num b) {
r /= 255;
g /= 255;
b /= 255;
num _max = max(
r,
max(g, b),
);
num _min = min(
r,
max(g, b),
);
num? h, s, v = _max;
num d = _max - _min;
s = _max == 0 ? 0 : d / _max;
if (max == min) {
h = 0; // achromatic
} else {
if (_max == r) {
h = (g - b) / d + (g < b ? 6 : 0);
} else if (_max == g) {
h = (b - r) / d + 2;
} else if (_max == b) {
h = (r - g) / d + 4;
}
}
h = h ?? 0 / 6;
return [h, s, v];
}