39 lines
978 B
C
39 lines
978 B
C
|
/*
|
||
|
* Colors in the strange XYZ space. new 9 avr 2007, ave St Exupery
|
||
|
*/
|
||
|
|
||
|
#include <stdio.h>
|
||
|
#include <math.h>
|
||
|
|
||
|
#include "tthimage.h"
|
||
|
|
||
|
/*::------------------------------------------------------------------::*/
|
||
|
int
|
||
|
Image_pix_rgb2xyz_d(int r, int g, int b, double *px, double *py, double *pz)
|
||
|
{
|
||
|
double dr, dg, db, dx, dy, dz;
|
||
|
|
||
|
#if TRACE
|
||
|
fprintf(stderr, "%s (%3d %3d %3d) -> ", __func__, r, g, b);
|
||
|
#endif
|
||
|
|
||
|
dr = (double)r / 256.0;
|
||
|
dg = (double)g / 256.0;
|
||
|
db = (double)b / 256.0;
|
||
|
dx = 2.7688 * dr + 1.7517 * dg + 1.1301 * db;
|
||
|
dy = 1.0000 * dr + 4.5907 * dg + 0.0601 * db;
|
||
|
dz = 0.0001 * dr + 0.0565 * dg + 5.5942 * db;
|
||
|
|
||
|
#if TRACE
|
||
|
fprintf(stderr, "(%f, %f, %f)\n", dx, dy, dz);
|
||
|
#endif
|
||
|
|
||
|
*px = dx, *py = dy, *pz = dz;
|
||
|
|
||
|
return FULL_NUCKED;
|
||
|
}
|
||
|
/*::------------------------------------------------------------------::*/
|
||
|
/*::------------------------------------------------------------------::*/
|
||
|
/*::------------------------------------------------------------------::*/
|
||
|
|