12,691,789 members (27,714 online)
Alternative Tip/Trick
alternative version

3.2K views
Posted

# 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

## You may also be interested in...

 First Prev Next
 Thanks a lot ! I will post my new code in few minutes. (Sean... Eric Ouellet4-Oct-11 10:33 Eric Ouellet 4-Oct-11 10:33
 Last Visit: 31-Dec-99 19:00     Last Update: 17-Jan-17 11:18 Refresh 1