rgbToHsl static method
Convert rgbColor
from rgb color model to the hue, saturation, and
lightness (HSL) color model and store it in hslColor
.
Implementation
static void rgbToHsl(Vector4 rgbColor, Vector4 hslColor) {
final max = math.max(math.max(rgbColor.r, rgbColor.g), rgbColor.b);
final min = math.min(math.min(rgbColor.r, rgbColor.g), rgbColor.b);
final l = (max + min) / 2.0;
var h = 0.0;
var s = 0.0;
if (max != min) {
final d = max - min;
s = l > 0.5 ? d / (2.0 - max - min) : d / (max + min);
if (max == rgbColor.r) {
h = (rgbColor.g - rgbColor.b) / d +
(rgbColor.g < rgbColor.b ? 6.0 : 0.0);
} else if (max == rgbColor.g) {
h = (rgbColor.b - rgbColor.r) / d + 2.0;
} else {
h = (rgbColor.r - rgbColor.g) / d + 4.0;
}
h /= 6.0;
}
hslColor.setValues(h, s, l, rgbColor.a);
}