HSLColour.fromColor constructor

HSLColour.fromColor(
  1. Color color
)

Implementation

factory HSLColour.fromColor(Color color) {
  final double red = color.red / 0xFF;
  final double green = color.green / 0xFF;
  final double blue = color.blue / 0xFF;

  final double max = math.max(red, math.max(green, blue));
  final double min = math.min(red, math.min(green, blue));
  final double delta = max - min;

  final double alpha = color.alpha / 0xFF;
  final double hue = ColourSpace.getHue(red, green, blue, max, delta);
  final double lightness = (max + min) / 2.0;
  final double saturation = min == max
      ? 0.0
      : clampDouble(delta / (1.0 - (2.0 * lightness - 1.0).abs()), 0.0, 1.0);
  return HSLColour.fromAHSL(alpha, hue, saturation, lightness);
}