hsl method

HslColor hsl()

Convert to HslColor.

Implementation

HslColor hsl() {
  final num mx = max(max(red, green), blue),
      mn = min(min(red, green), blue), ch = mx - mn;
  final num light = (mx + mn) / (2 * 255);
  final num sat = ch == 0 ? 0 :
      ch / (light < 0.5 ? mx + mn : 2 * 255 - mx - mn);
  final int lead = red > green ?
      (red > blue ? 0 : 2) : (green > blue ? 1 : 2);
  final num hue = 60 * (ch == 0 ? 0 :
    lead == 0 ? ((green - blue) / ch) % 6 :
    lead == 1 ? (blue - red) / ch + 2 : (red - green) / ch + 4);
  return HslColor(hue, sat, light, alpha);
}