Alternative Tip/Trick

# Random Color Generator

, 5 Oct 2011 CPOL
 Rate this:
Eric, sorry for the confusion, I think I wrote it too quick:Guillaume's library uses sRGB with D65 white ref. If you want to continue using that conversion, then just copy/paste RGBtoXYZ and XYZtoRGB into your code.you get a correct codethe calculation is more precise with the expanded...

Eric, sorry for the confusion, I think I wrote it too quick:

Guillaume's library uses sRGB with D65 white ref. If you want to continue using that conversion, then just copy/paste `RGBtoXYZ` and `XYZtoRGB` into your code.

1. you get a correct code
2. the calculation is more precise with the expanded constants.

If you would like a conversion which is very similar to Adobe's, then you need to do the other proposed changes as well: RGB Bradford at D50.

Here is the ready copy/paste `XYZtoRGB` for RGB Bradford:

```public static RGB XYZtoRGB(double x, double y, double z)
{
// using RGB Bradford Working Space Matrix and D50 Reference White
double[] Clinear = new double[3];
Clinear[0] = x*3.1338561 - y*1.6168667 - z*0.4906146; // red
Clinear[1] = -x*0.9787684 + y*1.9161415 + z*0.0334540; // green
Clinear[2] = x*0.0719453 - y*0.2289914 + z*1.4052427; // blue

for(int i=0; i<3; i++)
{
Clinear[i] = (Clinear[i]<=0.0031308)? 12.92*Clinear[i] :
(1+0.055)* Math.Pow(Clinear[i], (1.0/2.4)) - 0.055;
Clinear[i] *= 255.0;
}
// looks a bit cleaner than before :-)
return new RGB((int)Clinear[0], (int)Clinear[1], (int)Clinear[2]);
}```

If you need help for the rest, just shout.

Rob

BTW, you can make a chicken fly, it all depends on the height of the building...

## Share

Switzerland
No Biography provided

 First Prev Next
 Last Visit: 31-Dec-99 19:00     Last Update: 18-Dec-14 0:31 Refresh 1