Better fix for 6183.
[ardour.git] / libs / canvas / canvas / colorspace.h
1 /** 
2  * @file colorspace.h 
3  * @author Pascal Getreuer 2005-2010 <getreuer@gmail.com>
4  */
5
6 #ifndef _ARDOURCANVAS_COLORSPACE_H_
7 #define _ARDOURCANVAS_COLORSPACE_H_
8
9 /** @brief XYZ color of the D65 white point */
10 #define WHITEPOINT_X    0.950456
11 #define WHITEPOINT_Y    1.0
12 #define WHITEPOINT_Z    1.088754
13
14 void Rgb2Yuv(double *Y, double *U, double *V, double R, double G, double B);
15 void Yuv2Rgb(double *R, double *G, double *B, double Y, double U, double V);
16 void Rgb2Ycbcr(double *Y, double *Cb, double *Cr, double R, double G, double B);
17 void Ycbcr2Rgb(double *R, double *G, double *B, double Y, double Cb, double Cr);
18 void Rgb2Jpegycbcr(double *R, double *G, double *B, double Y, double Cb, double Cr);
19 void Jpegycbcr2Rgb(double *R, double *G, double *B, double Y, double Cb, double Cr);
20 void Rgb2Ypbpr(double *Y, double *Pb, double *Pr, double R, double G, double B);
21 void Ypbpr2Rgb(double *R, double *G, double *B, double Y, double Pb, double Pr);
22 void Rgb2Ydbdr(double *Y, double *Db, double *Dr, double R, double G, double B);
23 void Ydbdr2Rgb(double *R, double *G, double *B, double Y, double Db, double Dr);
24 void Rgb2Yiq(double *Y, double *I, double *Q, double R, double G, double B);
25 void Yiq2Rgb(double *R, double *G, double *B, double Y, double I, double Q);
26
27 void Rgb2Hsv(double *H, double *S, double *V, double R, double G, double B);
28 void Hsv2Rgb(double *R, double *G, double *B, double H, double S, double V);
29 void Rgb2Hsl(double *H, double *S, double *L, double R, double G, double B);
30 void Hsl2Rgb(double *R, double *G, double *B, double H, double S, double L);
31 void Rgb2Hsi(double *H, double *S, double *I, double R, double G, double B);
32 void Hsi2Rgb(double *R, double *G, double *B, double H, double S, double I);
33
34 void Rgb2Xyz(double *X, double *Y, double *Z, double R, double G, double B);
35 void Xyz2Rgb(double *R, double *G, double *B, double X, double Y, double Z);
36 void Xyz2Lab(double *L, double *a, double *b, double X, double Y, double Z);
37 void Lab2Xyz(double *X, double *Y, double *Z, double L, double a, double b);
38 void Xyz2Luv(double *L, double *u, double *v, double X, double Y, double Z);
39 void Luv2Xyz(double *X, double *Y, double *Z, double L, double u, double v);
40 void Xyz2Lch(double *L, double *C, double *H, double X, double Y, double Z);
41 void Lch2Xyz(double *X, double *Y, double *Z, double L, double C, double H);
42 void Xyz2Cat02lms(double *L, double *M, double *S, double X, double Y, double Z);
43 void Cat02lms2Xyz(double *X, double *Y, double *Z, double L, double M, double S);
44
45 void Rgb2Lab(double *L, double *a, double *b, double R, double G, double B);
46 void Lab2Rgb(double *R, double *G, double *B, double L, double a, double b);
47 void Rgb2Luv(double *L, double *u, double *v, double R, double G, double B);
48 void Luv2Rgb(double *R, double *G, double *B, double L, double u, double v);
49 void Rgb2Lch(double *L, double *C, double *H, double R, double G, double B);
50 void Lch2Rgb(double *R, double *G, double *B, double L, double C, double H);
51 void Rgb2Cat02lms(double *L, double *M, double *S, double R, double G, double B);
52 void Cat02lms2Rgb(double *R, double *G, double *B, double L, double M, double S);
53
54 #endif  /* _ARDOURCANVAS_COLORSPACE_H_ */