oklabToRgb static method
Converts an Oklab color to an RGB color.
Implementation
static RgbColor oklabToRgb(OklabColor oklabColor) {
if (oklabColor.isBlack) {
return RgbColor(0, 0, 0, oklabColor.alpha);
}
if (oklabColor.isWhite) {
return RgbColor(255, 255, 255, oklabColor.alpha);
}
final l = (oklabColor.lightness +
(0.3963377774 * oklabColor.a) +
(0.2158037573 * oklabColor.b))
.cubed();
final m = (oklabColor.lightness -
(0.1055613458 * oklabColor.a) -
(0.0638541728 * oklabColor.b))
.cubed();
final s = (oklabColor.lightness -
(0.0894841775 * oklabColor.a) -
(1.2914855480 * oklabColor.b))
.cubed();
return _LinearRgbColor(
(4.0767416621 * l) - (3.3077115913 * m) + (0.2309699292 * s),
(-1.2684380046 * l) + (2.6097574011 * m) - (0.3413193965 * s),
(-0.0041960863 * l) - (0.7034186147 * m) + (1.7076147010 * s),
).normalize().copyWith(alpha: oklabColor.alpha);
}