xyzToRgb function
Convert an XYZ color to RGB.
Implementation
List<int> xyzToRgb(num x, num y, num z) {
x /= 100;
y /= 100;
z /= 100;
num r = (3.2406 * x) + (-1.5372 * y) + (-0.4986 * z);
num g = (-0.9689 * x) + (1.8758 * y) + (0.0415 * z);
num b = (0.0557 * x) + (-0.2040 * y) + (1.0570 * z);
if (r > 0.0031308) {
r = (1.055 * pow(r, 0.4166666667)) - 0.055;
} else {
r *= 12.92;
}
if (g > 0.0031308) {
g = (1.055 * pow(g, 0.4166666667)) - 0.055;
} else {
g *= 12.92;
}
if (b > 0.0031308) {
b = (1.055 * pow(b, 0.4166666667)) - 0.055;
} else {
b *= 12.92;
}
return [
(r * 255).clamp(0, 255).toInt(),
(g * 255).clamp(0, 255).toInt(),
(b * 255).clamp(0, 255).toInt()
];
}