1 #ifndef COLOR_TOOLS_CPU_H
2 #define COLOR_TOOLS_CPU_H
4 #include "cudaType_CPU.h"
7 * The two methode HSB_TO_RGB and RGB_TO_HSB are from http://www.easyrgb.com/index.php?X=MATH&H=21#text21
15 /*--------------------------------------*\
17 \*-------------------------------------*/
20 * Convertir une couleur HSB en RVB !
24 static void HSB_TO_RVB(const float3
& hsb01
, uchar4
* ptrRVBA
);
27 * Convertir une couleur HSB en RGB !
31 static void HSB_TO_RVB(float h01
, uchar4
* ptrRVBA
);
34 * Convertir une couleur HSB en RGB !
38 static void HSB_TO_RVB(float h01
, float s01
, float b01
, uchar4
* ptrRVBA
);
41 * Conversion HSB => RVB
47 static void HSB_TO_RVB(const float H
, const float S
, const float V
, unsigned char *ptrR
, unsigned char *ptrG
, unsigned char *ptrB
);
49 /*--------------------------------------*\
51 \*-------------------------------------*/
54 * Conversion RGB => HSB
60 static void RGB_TO_HSB(const unsigned char R
, const unsigned char G
, const unsigned char B
, float &H
, float &S
, float &V
);
62 /*--------------------------------------*\
64 \*-------------------------------------*/
67 * Conversion HSB => RGBA + toIntRGBA
69 * h01,b01,b01 in [0,1]
71 * intRGBA cod� sur 32 bits, chaque composante (a,r,g,b) �tant cod�e sur 4 bits
72 * intRGBA cod�e : 0xAARRGGBB
74 static int HSB_TO_IntRGBA(float h01
, float s01
, float b01
, float a01
= 0);
77 * Conversion (r,g,b,a) => intRGBA
81 * intRGBA cod� sur 32 bits, chaque composante (a,r,g,b) �tant cod�e sur 4 bits
82 * intRGBA cod�e : 0xAARRGGBB
84 static int toIntRGBA(unsigned char r
, unsigned char g
, unsigned char b
, unsigned char a
= 0);
87 * see toIntRGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a = 0)
89 static int toIntRGBA(float r01
, float g01
, float b01
, float a01
= 0);
93 * intRGBA cod� sur 32 bits, chaque composante (a,r,g,b) �tant cod�e sur 4 bits
94 * intRGBA cod�e : 0xAARRGGBB
98 static void fromIntRGBA(const int rgb
, unsigned char &r
, unsigned char &g
, unsigned char &b
, unsigned char &a
);