The friendly Operating System for the Internet of Things
Color

The color sys module supports handling RGB and HSV color. More...

Detailed Description

Files

file  color.h
 Headers for the color handling module.
 

Data Structures

struct  color_rgb_t
 Data-structure describing a RGB color. More...
 
struct  color_hsv_t
 Data-structure for holding HSV colors. More...
 

Functions

void color_rgb2hsv (color_rgb_t *rgb, color_hsv_t *hsv)
 Convert RGB color to HSV color. More...
 
void color_hsv2rgb (color_hsv_t *hsv, color_rgb_t *rgb)
 Convert HSV color to RGB color. More...
 
void color_hex2rgb (const uint32_t hex, color_rgb_t *rgb)
 Convert a hex value of the form 0x00RRGGBB to an RGB color struct. More...
 
void color_rgb2hex (const color_rgb_t *rgb, uint32_t *hex)
 Convert a rgb struct to a hex value of the form 0x00RRGGBB. More...
 
void color_str2rgb (const char *str, color_rgb_t *color)
 Convert a hex color string of the form 'RRGGBB' to a color_rgb_t struct. More...
 
void color_rgb2str (const color_rgb_t *rgb, char *str)
 Convert a color_rgb_t struct to a hex color string of the form 'RRGGBB'. More...
 
static void color_rgb_invert (const color_rgb_t *rgb, color_rgb_t *inv_rgb)
 Invert a given rgb color. More...
 
void color_rgb_complementary (const color_rgb_t *rgb, color_rgb_t *comp_rgb)
 Calculate the complementary color of a given rgb color. More...
 

Function Documentation

void color_hex2rgb ( const uint32_t  hex,
color_rgb_t rgb 
)
Note
the two most significant bytes of hex will be ignored
Parameters
[in]hexInput color encoded in hex
[out]rgbOutput color encoded in RGB space
void color_hsv2rgb ( color_hsv_t hsv,
color_rgb_t rgb 
)
Parameters
[in]hsvInput color encoded in HSV space
[out]rgbOutput color encoded in RGB space
void color_rgb2hex ( const color_rgb_t rgb,
uint32_t *  hex 
)
Note
the two most significant bytes of hex will be 0
Parameters
[in]rgbInput color encoded in RGB space
[out]hexOutput color encoded in hex
void color_rgb2hsv ( color_rgb_t rgb,
color_hsv_t hsv 
)
Parameters
[in]rgbInput color encoded in RGB space
[out]hsvOutput color encoded in HSV space
void color_rgb2str ( const color_rgb_t rgb,
char *  str 
)
Note
str MUST be big enough to hold 6 characters
Parameters
[in]rgbInput color encoded in RGB space
[out]strOutput color encoded as string of the form 'RRGGBB'
void color_rgb_complementary ( const color_rgb_t rgb,
color_rgb_t comp_rgb 
)
Note
Complementary color calculation according to adobe illustator calculations. See https://helpx.adobe.com/illustrator/using/adjusting-colors.html
Precondition
((rgb != NULL) && (comp_rgb != NULL))
Parameters
[in]rgbInput rgb color. Must be NOT NULL
[out]comp_rgbOutput rgb color, result of the complementary color calculation. Must be NOT NULL
static void color_rgb_invert ( const color_rgb_t rgb,
color_rgb_t inv_rgb 
)
inlinestatic
Precondition
((rgb != NULL) && (inv_rgb != NULL))
Parameters
[in]rgbInput rgb color, that should be converted. Must be NOT NULL
[out]inv_rgbOutput rgb color, result of the conversion. Must be NOT NULL

Definition at line 116 of file color.h.

void color_str2rgb ( const char *  str,
color_rgb_t color 
)
Note
str MUST contain only hexadecimal digits. Expect unexpected behaviour, otherwise.
Parameters
[in]strInput color encoded as string of the form 'RRGGBB'
[out]colorOutput color encoded in RGB space