hsbToRgb static method
Converts a HSB color to a RGB color.
Implementation
static RgbColor hsbToRgb(HsbColor hsbColor) {
final hsb = hsbColor.toFactoredList();
final hue = hsb[0];
final saturation = hsb[1];
final value = hsb[2];
late double red, green, blue;
final hueIndex = (hue * 6).floor();
final hueFloat = (hue * 6) - hueIndex;
final hueSegment = (hueIndex.isEven) ? 1 - hueFloat : hueFloat;
final a = value;
final b = value * (1 - saturation);
final c = value * (1 - (hueSegment * saturation));
switch (hueIndex % 6) {
case 0:
red = a;
green = c;
blue = b;
break;
case 1:
red = c;
green = a;
blue = b;
break;
case 2:
red = b;
green = a;
blue = c;
break;
case 3:
red = b;
green = c;
blue = a;
break;
case 4:
red = c;
green = b;
blue = a;
break;
case 5:
red = a;
green = b;
blue = c;
break;
}
final alpha = hsbColor.alpha / 255;
return RgbColor.extrapolate(<double>[red, green, blue, alpha]);
}