atomorph/color.h

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);
}