34 lines
751 B
C++
34 lines
751 B
C++
/*
|
|
* See Copyright Notice in atomorph.h
|
|
*/
|
|
|
|
namespace am {
|
|
|
|
typedef struct color {
|
|
uint8_t r;
|
|
uint8_t g;
|
|
uint8_t b;
|
|
uint8_t a;
|
|
} color;
|
|
|
|
color create_color(unsigned char r, unsigned char g, unsigned char b, unsigned char a);
|
|
color create_color(double r, double g, double b, double a);
|
|
|
|
inline double color_distance(color c1, color c2) {
|
|
int16_t rd = c1.r-c2.r;
|
|
int16_t gd = c1.g-c2.g;
|
|
int16_t bd = c1.b-c2.b;
|
|
int16_t ad = c1.a-c2.a;
|
|
|
|
return sqrt(rd*rd+gd*gd+bd*bd+ad*ad)/510.0;
|
|
}
|
|
|
|
color rgb_to_hsp(color c);
|
|
color hsp_to_rgb(color c);
|
|
|
|
void RGBtoHSP(double R, double G, double B, double *H, double *S, double *P);
|
|
void HSPtoRGB(double H, double S, double P, double *R, double *G, double *B);
|
|
|
|
}
|
|
|