toHslColor method
Implementation
@override
HslColor toHslColor() {
var rf = r / 255;
var gf = g / 255;
var bf = b / 255;
var cMax = [rf, gf, bf].reduce(max);
var cMin = [rf, gf, bf].reduce(min);
var delta = cMax - cMin;
num hue;
num saturation;
num luminance;
if (cMax == rf) {
hue = 60 * ((gf - bf) / delta % 6);
} else if (cMax == gf) {
hue = 60 * ((bf - rf) / delta + 2);
} else {
hue = 60 * ((rf - gf) / delta + 4);
}
if (hue.isNaN || hue.isInfinite) {
hue = 0;
}
luminance = (cMax + cMin) / 2;
if (delta == 0) {
saturation = 0;
} else {
saturation = delta / (1 - (luminance * 2 - 1).abs());
}
return HslColor(hue, saturation * 100, luminance * 100);
}