Como pasar de XYZ a RGB

c-sharp imagen

Si necesitas convertir de XYZ a RGB tal vez de pueda ayudar esta funcion de C#, en la que le pasas los 3 valores XYZ y te devuelve una lista con los 3 valores RGB.

public List<Double> mtConvertorXYZToRGB(Double valorX, Double valorY, Double valorZ)
{

Double var_X = valorX / 100;
Double var_Y = valorY / 100;
Double var_Z = valorZ / 100;

Double var_R;
Double var_G;
Double var_B;

var_R = var_X * 3.2406 + var_Y * -1.5372 + var_Z * -0.4986;
var_G = var_X * -0.9689 + var_Y * 1.8758 + var_Z * 0.0415;
var_B = var_X * 0.0557 + var_Y * -0.2040 + var_Z * 1.0570;

if (var_R > 0.0031308)
{
var_R = 1.055 * (Math.Pow(var_R, (1 / 2.4))) – 0.055;
}
else
{
var_R = 12.92 * var_R;
}

if (var_G > 0.0031308)
{
var_G = 1.055 * (Math.Pow(var_G, (1 / 2.4))) – 0.055;
}
else
{
var_G = 12.92 * var_R;
}

if (var_B > 0.0031308)
{
var_B = 1.055 * (Math.Pow(var_B, (1 / 2.4))) – 0.055;
}
else
{
var_B = 12.92 * var_R;
}

Double R = var_R * 255;
Double G = var_G * 255;
Double B = var_B * 255;

List<Double> listaRGB = new List<double>();
listaRGB.Add(R);
listaRGB.Add(G);
listaRGB.Add(B);
return listaRGB;
}

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *