36 uint8_t min, max, delta;
57 dst->
s = (uint16_t)(delta)*255 / max;
66 dst->
h = (src->g - src->b)*(HSV_GRADE/6)/delta;
67 else if( src->g == max )
68 dst->
h = (HSV_GRADE/6)*2 + (src->b - src->r)*(HSV_GRADE/6)/delta;
70 dst->
h = (HSV_GRADE/6)*4 + (src->r - src->g)*(HSV_GRADE/6)/delta;
72 if( (int16_t)dst->
h < 0 )
82 uint8_t hi,fr, p, q, t;
89 dst->r = dst->g = dst->b = src->
v;
93 hi = src->
h / (HSV_GRADE/6);
111 h_pr = src->
h - (HSV_GRADE/6) * hi;
113 fr = ( h_pr * 255 ) / (HSV_GRADE/6);
114 p = src->
v * ( 255 - src->
s ) / 255;
115 q = src->
v * ( 255 - ( ( src->
s * fr ) / 255 ) ) / 255;
116 t = src->
v * ( 255 - ( src->
s * ( 255 - fr ) / 255 ) ) / 255;
void rgb_to_hsv(rgb_t *src, hsv_t *dst)
uint16_t h
Оттенок цвета, значения в градусах 0...359.
uint8_t s
Насыщенность оттенка
Тип для представления цвета в HSV-модели
Тип для представления цвета в RGB-модели
void hsv_to_rgb(hsv_t *src, rgb_t *dst)