22 double min(
double a,
double b)
30 double max(
double a,
double b)
35 double min(
double a,
double b,
double c)
40 double max(
double a,
double b,
double c)
45 void cmy2rgb(
double C,
double M,
double Y,
double& R,
double& G,
double&B)
47 R = int(255*(1.-C)+.5);
48 G = int(255*(1.-M)+.5);
49 B = int(255*(1.-Y)+.5);
52 void cmyk2cmy(
double C,
double M,
double Y,
double K,
double& Cn,
double& Mn,
double&Yn)
59 void rgb2hsv(
double R,
double G,
double B,
double& H,
double& S,
double&V)
61 double var_R = ( R / 255 );
62 double var_G = ( G / 255 );
63 double var_B = ( B / 255 );
65 double var_Min =
min( var_R, var_G, var_B );
66 double var_Max =
max( var_R, var_G, var_B );
67 double del_Max = var_Max - var_Min;
78 S = del_Max / var_Max;
80 double del_R = ( ( ( var_Max - var_R ) / 6. ) + ( del_Max / 2. ) ) / del_Max;
81 double del_G = ( ( ( var_Max - var_G ) / 6. ) + ( del_Max / 2. ) ) / del_Max;
82 double del_B = ( ( ( var_Max - var_B ) / 6. ) + ( del_Max / 2. ) ) / del_Max;
84 if ( var_R == var_Max ) H = del_B - del_G;
85 else if ( var_G == var_Max ) H = ( 1. / 3. ) + del_R - del_B;
86 else if ( var_B == var_Max ) H = ( 2. / 3. ) + del_G - del_R;
87 if ( H < 0. ) H += 1.;
88 if ( H > 1. ) H -= 1.;
92 void hsv2rgb(
double H,
double S,
double V,
double& R,
double& G,
double&B)
102 int sector = floor(H);
103 double rl = H-sector;
void rgb2hsv(double R, double G, double B, double &H, double &S, double &V)
void cmyk2cmy(double C, double M, double Y, double K, double &Cn, double &Mn, double &Yn)
void cmy2rgb(double C, double M, double Y, double &R, double &G, double &B)
double min(double a, double b)
void hsv2rgb(double H, double S, double V, double &R, double &G, double &B)
double max(double a, double b)