Skip to main content

Color

Contains functionality for color conversion.

Public Functions​

FORCE_INLINE_FUNCTION uint8_tgetBlue(colortype color)
Gets the blue color part of a color.
FORCE_INLINE_FUNCTION uint8_tgetBlueColor(colortype color)
Gets the blue color part of a color.
FORCE_INLINE_FUNCTION uint8_tgetBlueFromRGB565(uint16_t color)
Gets the blue color part of a 16bpp color also known as RGB565.
FORCE_INLINE_FUNCTION colortypegetColorFrom24BitRGB(uint8_t red, uint8_t green, uint8_t blue)
Generates a color representation to be used on the LCD, based on 24 bit RGB values.
FORCE_INLINE_FUNCTION colortypegetColorFromHSL(uint8_t hue, uint8_t saturation, uint8_t luminance)
Convert a given color from HSV (Hue, Saturation, Value) to colortype.
FORCE_INLINE_FUNCTION colortypegetColorFromHSV(uint8_t hue, uint8_t saturation, uint8_t value)
Convert a given color from HSV (Hue, Saturation, Value) to colortype.
FORCE_INLINE_FUNCTION colortypegetColorFromRGB(uint8_t red, uint8_t green, uint8_t blue)
Generates a color representation to be used on the LCD, based on 24 bit RGB values.
FORCE_INLINE_FUNCTION uint8_tgetGreen(colortype color)
Gets the green color part of a color.
FORCE_INLINE_FUNCTION uint8_tgetGreenColor(colortype color)
Gets the green color part of a color.
FORCE_INLINE_FUNCTION uint8_tgetGreenFromRGB565(uint16_t color)
Gets the green color part of a 16bpp color also known as RGB565.
FORCE_INLINE_FUNCTION voidgetHSLFrom24BitRGB(uint8_t red, uint8_t green, uint8_t blue, uint8_t & hue, uint8_t & saturation, uint8_t & luminance)
Convert a given color from RGB (Red, Green, Blue) to HSV (Hue, Saturation, Value).
FORCE_INLINE_FUNCTION voidgetHSLFromColor(colortype color, uint8_t & hue, uint8_t & saturation, uint8_t & luminance)
Convert a given colortype color to HSV (Hue, Saturation, Value).
FORCE_INLINE_FUNCTION voidgetHSLFromHSV(uint8_t hsv_hue, uint8_t hsv_saturation, uint8_t hsv_value, uint8_t & hsl_hue, uint8_t & hsl_saturation, uint8_t & hsl_luminance)
Convert HSV (Hue, Saturation, Value) to HSL (Hue, Saturation, Luminance).
FORCE_INLINE_FUNCTION voidgetHSLFromHSV(uint8_t hue, uint8_t & saturation, uint8_t value, uint8_t & luminance)
Convert HSV (Hue, Saturation, Value) to HSL (Hue, Saturation, Luminance).
FORCE_INLINE_FUNCTION voidgetHSLFromRGB(uint8_t red, uint8_t green, uint8_t blue, uint8_t & hue, uint8_t & saturation, uint8_t & luminance)
Convert a given color from RGB (Red, Green, Blue) to HSV (Hue, Saturation, Value).
FORCE_INLINE_FUNCTION voidgetHSVFrom24BitRGB(uint8_t red, uint8_t green, uint8_t blue, uint8_t & hue, uint8_t & saturation, uint8_t & value)
Convert a given color from RGB (Red, Green, Blue) to HSV (Hue, Saturation, Value).
FORCE_INLINE_FUNCTION voidgetHSVFromColor(colortype color, uint8_t & hue, uint8_t & saturation, uint8_t & value)
Convert a given colortype color to HSV (Hue, Saturation, Value).
FORCE_INLINE_FUNCTION voidgetHSVFromHSL(uint8_t hsl_hue, uint8_t hsl_saturation, uint8_t hsl_luminance, uint8_t & hsv_hue, uint8_t & hsv_saturation, uint8_t & hsv_value)
Convert HSL (Hue, Saturation, Luminance) to HSV (Hue, Saturation, Value).
FORCE_INLINE_FUNCTION voidgetHSVFromHSL(uint8_t hue, uint8_t & saturation, uint8_t luminance, uint8_t & value)
Convert HSL (Hue, Saturation, Luminance) to HSV (Hue, Saturation, Value).
voidgetHSVFromRGB(uint8_t red, uint8_t green, uint8_t blue, uint8_t & hue, uint8_t & saturation, uint8_t & value)
Convert a given color from RGB (Red, Green, Blue) to HSV (Hue, Saturation, Value).
FORCE_INLINE_FUNCTION uint8_tgetRed(colortype color)
Gets the red color part of a color.
FORCE_INLINE_FUNCTION uint8_tgetRedColor(colortype color)
Gets the red color part of a color.
FORCE_INLINE_FUNCTION uint8_tgetRedFromRGB565(uint16_t color)
Gets the red color part of a 16bpp color also known as RGB565.
FORCE_INLINE_FUNCTION voidgetRGBFrom24BitHSL(uint8_t hue, uint8_t saturation, uint8_t luminance, uint8_t & red, uint8_t & green, uint8_t & blue)
Convert a given color from HSV (Hue, Saturation, Value) to RGB (Red, Green, Blue).
FORCE_INLINE_FUNCTION voidgetRGBFrom24BitHSV(uint8_t hue, uint8_t saturation, uint8_t value, uint8_t & red, uint8_t & green, uint8_t & blue)
Convert a given color from HSV (Hue, Saturation, Value) to RGB (Red, Green, Blue).
FORCE_INLINE_FUNCTION voidgetRGBFromHSL(uint8_t hue, uint8_t saturation, uint8_t luminance, uint8_t & red, uint8_t & green, uint8_t & blue)
Convert a given color from HSV (Hue, Saturation, Value) to RGB (Red, Green, Blue).
voidgetRGBFromHSV(uint8_t hue, uint8_t saturation, uint8_t value, uint8_t & red, uint8_t & green, uint8_t & blue)
Convert a given color from HSV (Hue, Saturation, Value) to RGB (Red, Green, Blue).
FORCE_INLINE_FUNCTION uint32_trgb565toXrgb8888(uint16_t rgb565)
Convert 16bit RGB565 color to 32bit ARGB8888 color by expanding the 5,6,5 colors to full 8,8, 8 colors.

Public Functions Documentation​

getBlue​

static FORCE_INLINE_FUNCTION uint8_t getBlue(colortypecolor)

Gets the blue color part of a color.

Parameters:
colorThe color value.
Returns:

The blue part of the color.

getBlueColor​

static FORCE_INLINE_FUNCTION uint8_t getBlueColor(colortypecolor)

Gets the blue color part of a color.

Parameters:
colorThe color value.
Returns:

The blue part of the color.

Deprecated

Use getBlue(colortype)

getBlueFromRGB565​

static FORCE_INLINE_FUNCTION uint8_t getBlueFromRGB565(uint16_tcolor)

Gets the blue color part of a 16bpp color also known as RGB565.

The blue part (5 bits) is extracted and scaled to the full 0-255 byte range.

Parameters:
colorThe color value in RGB565.
Returns:

The blue part of the color.

getColorFrom24BitRGB​

static FORCE_INLINE_FUNCTION colortype getColorFrom24BitRGB(uint8_tred ,
uint8_tgreen ,
uint8_tblue
)

Generates a color representation to be used on the LCD, based on 24 bit RGB values.

Parameters:
redValue of the red part (0-255).
greenValue of the green part (0-255).
blueValue of the blue part (0-255).
Returns:

The color representation depending on LCD color format.

getColorFromHSL​

static FORCE_INLINE_FUNCTION colortype getColorFromHSL(uint8_thue ,
uint8_tsaturation ,
uint8_tluminance
)

Convert a given color from HSV (Hue, Saturation, Value) to colortype.

Parameters:
hueThe input Hue (0 to 255).
saturationThe input Saturation (0 to 255).
luminanceThe input Value (0 to 255).
Returns:

The colortype color.

Note

The conversion is an approximation.

getColorFromHSV​

static FORCE_INLINE_FUNCTION colortype getColorFromHSV(uint8_thue ,
uint8_tsaturation ,
uint8_tvalue
)

Convert a given color from HSV (Hue, Saturation, Value) to colortype.

Parameters:
hueThe input Hue (0 to 255).
saturationThe input Saturation (0 to 255).
valueThe input Value (0 to 255).
Returns:

The colortype color.

Note

The conversion is an approximation.

getColorFromRGB​

static FORCE_INLINE_FUNCTION colortype getColorFromRGB(uint8_tred ,
uint8_tgreen ,
uint8_tblue
)

Generates a color representation to be used on the LCD, based on 24 bit RGB values.

The embedded alpha value is set to 255.

Parameters:
redValue of the red part (0-255).
greenValue of the green part (0-255).
blueValue of the blue part (0-255).
Returns:

The color representation depending on LCD color format.

getGreen​

static FORCE_INLINE_FUNCTION uint8_t getGreen(colortypecolor)

Gets the green color part of a color.

Parameters:
colorThe color value.
Returns:

The green part of the color.

getGreenColor​

static FORCE_INLINE_FUNCTION uint8_t getGreenColor(colortypecolor)

Gets the green color part of a color.

Parameters:
colorThe color value.
Returns:

The green part of the color.

Deprecated

Use getGreen(colortype)

getGreenFromRGB565​

static FORCE_INLINE_FUNCTION uint8_t getGreenFromRGB565(uint16_tcolor)

Gets the green color part of a 16bpp color also known as RGB565.

The green part (6 bits) is extracted and scaled to the full 0-255 byte range.

Parameters:
colorThe color value in RGB565.
Returns:

The green part of the color.

getHSLFrom24BitRGB​

static FORCE_INLINE_FUNCTION void getHSLFrom24BitRGB(uint8_tred ,
uint8_tgreen ,
uint8_tblue ,
uint8_t &hue ,
uint8_t &saturation ,
uint8_t &luminance
)

Convert a given color from RGB (Red, Green, Blue) to HSV (Hue, Saturation, Value).

Parameters:
redThe input Red (0 to 255).
greenThe input Green (0 to 255).
blueThe input Blue (0 to 255).
hueThe output Hue (0 to 255).
saturationThe output Saturation (0 to 255).
luminanceThe output Value (0 to 255).
Note

The conversion is an approximation.

getHSLFromColor​

static FORCE_INLINE_FUNCTION void getHSLFromColor(colortypecolor ,
uint8_t &hue ,
uint8_t &saturation ,
uint8_t &luminance
)

Convert a given colortype color to HSV (Hue, Saturation, Value).

Parameters:
colorThe input color.
hueThe output Hue (0 to 255).
saturationThe output Saturation (0 to 255).
luminanceThe output Value (0 to 255).
Note

The conversion is an approximation.

getHSLFromHSV​

static FORCE_INLINE_FUNCTION void getHSLFromHSV(uint8_thsv_hue ,
uint8_thsv_saturation ,
uint8_thsv_value ,
uint8_t &hsl_hue ,
uint8_t &hsl_saturation ,
uint8_t &hsl_luminance
)

Convert HSV (Hue, Saturation, Value) to HSL (Hue, Saturation, Luminance).

Parameters:
hsv_hueThe input HSV hue (0 to 255).
hsv_saturationThe input HSV saturation (0 to 255).
hsv_valueThe input HSV value (0 to 255).
hsl_hueThe output HSL hue (0 to 255).
hsl_saturationThe output HSL saturation (0 to 255).
hsl_luminanceThe output HSL luminance (0 to 255).

getHSLFromHSV​

static FORCE_INLINE_FUNCTION void getHSLFromHSV(uint8_thue ,
uint8_t &saturation ,
uint8_tvalue ,
uint8_t &luminance
)

Convert HSV (Hue, Saturation, Value) to HSL (Hue, Saturation, Luminance).

The Hue is unaltered, the Saturation is changed and the Luminance is calculated.

Parameters:
hueThe hue (0 to 255).
saturationThe saturation (0 to 255).
valueThe value (0 to 255).
luminanceThe luminance (0 to 255).
Deprecated

Use getHSLFromHSV(uint8_t,uint8_t,int8_t,uint8_t&,uint8_t&,uint8_t&)

getHSLFromRGB​

static FORCE_INLINE_FUNCTION void getHSLFromRGB(uint8_tred ,
uint8_tgreen ,
uint8_tblue ,
uint8_t &hue ,
uint8_t &saturation ,
uint8_t &luminance
)

Convert a given color from RGB (Red, Green, Blue) to HSV (Hue, Saturation, Value).

Parameters:
redThe input Red (0 to 255).
greenThe input Green (0 to 255).
blueThe input Blue (0 to 255).
hueThe output Hue (0 to 255).
saturationThe output Saturation (0 to 255).
luminanceThe output Value (0 to 255).
Note

The conversion is an approximation.

getHSVFrom24BitRGB​

static FORCE_INLINE_FUNCTION void getHSVFrom24BitRGB(uint8_tred ,
uint8_tgreen ,
uint8_tblue ,
uint8_t &hue ,
uint8_t &saturation ,
uint8_t &value
)

Convert a given color from RGB (Red, Green, Blue) to HSV (Hue, Saturation, Value).

Parameters:
redThe input Red.
greenThe input Green.
blueThe input Blue.
hueThe output Hue.
saturationThe output Saturation.
valueThe output Value.
Note

The conversion is an approximation.

getHSVFromColor​

static FORCE_INLINE_FUNCTION void getHSVFromColor(colortypecolor ,
uint8_t &hue ,
uint8_t &saturation ,
uint8_t &value
)

Convert a given colortype color to HSV (Hue, Saturation, Value).

Parameters:
colorThe input color.
hueThe output Hue (0 to 255).
saturationThe output Saturation (0 to 255).
valueThe output Value (0 to 255).
Note

The conversion is an approximation.

getHSVFromHSL​

static FORCE_INLINE_FUNCTION void getHSVFromHSL(uint8_thsl_hue ,
uint8_thsl_saturation ,
uint8_thsl_luminance ,
uint8_t &hsv_hue ,
uint8_t &hsv_saturation ,
uint8_t &hsv_value
)

Convert HSL (Hue, Saturation, Luminance) to HSV (Hue, Saturation, Value).

Parameters:
hsl_hueThe input HSL hue (0 to 255).
hsl_saturationThe input HSL saturation (0 to 255).
hsl_luminanceThe input HSL luminance (0 to 255).
hsv_hueThe output HSV hue (0 to 255).
hsv_saturationThe output HSV saturation (0 to 255).
hsv_valueThe output HSV value (0 to 255).

getHSVFromHSL​

static FORCE_INLINE_FUNCTION void getHSVFromHSL(uint8_thue ,
uint8_t &saturation ,
uint8_tluminance ,
uint8_t &value
)

Convert HSL (Hue, Saturation, Luminance) to HSV (Hue, Saturation, Value).

The Hue is unaltered, the Saturation is changed and the Value is calculated.

Parameters:
hueThe hue (0 to 255).
saturationThe saturation (0 to 255).
luminanceThe luminance (0 to 255).
valueThe value (0 to 255).
Deprecated

Use getHSVFromHSL(uint8_t,uint8_t,int8_t,uint8_t&,uint8_t&,uint8_t&)

getHSVFromRGB​

static void getHSVFromRGB(uint8_tred ,
uint8_tgreen ,
uint8_tblue ,
uint8_t &hue ,
uint8_t &saturation ,
uint8_t &value
)

Convert a given color from RGB (Red, Green, Blue) to HSV (Hue, Saturation, Value).

Parameters:
redThe input Red.
greenThe input Green.
blueThe input Blue.
hueThe output Hue.
saturationThe output Saturation.
valueThe output Value.
Note

The conversion is an approximation.

getRed​

static FORCE_INLINE_FUNCTION uint8_t getRed(colortypecolor)

Gets the red color part of a color.

Parameters:
colorThe color value.
Returns:

The red part of the color.

getRedColor​

static FORCE_INLINE_FUNCTION uint8_t getRedColor(colortypecolor)

Gets the red color part of a color.

Parameters:
colorThe color value.
Returns:

The red part of the color.

Deprecated

Use getRed(colortype)

getRedFromRGB565​

static FORCE_INLINE_FUNCTION uint8_t getRedFromRGB565(uint16_tcolor)

Gets the red color part of a 16bpp color also known as RGB565.

The red part (5 bits) is extracted and scaled to the full 0-255 byte range.

Parameters:
colorThe color value in RGB565.
Returns:

The red part of the color.

getRGBFrom24BitHSL​

static FORCE_INLINE_FUNCTION void getRGBFrom24BitHSL(uint8_thue ,
uint8_tsaturation ,
uint8_tluminance ,
uint8_t &red ,
uint8_t &green ,
uint8_t &blue
)

Convert a given color from HSV (Hue, Saturation, Value) to RGB (Red, Green, Blue).

Parameters:
hueThe input Hue (0 to 255).
saturationThe input Saturation (0 to 255).
luminanceThe input Value (0 to 255).
redThe output Red (0 to 255).
greenThe output Green (0 to 255).
blueThe output Blue (0 to 255).
Note

The conversion is an approximation.

getRGBFrom24BitHSV​

static FORCE_INLINE_FUNCTION void getRGBFrom24BitHSV(uint8_thue ,
uint8_tsaturation ,
uint8_tvalue ,
uint8_t &red ,
uint8_t &green ,
uint8_t &blue
)

Convert a given color from HSV (Hue, Saturation, Value) to RGB (Red, Green, Blue).

Parameters:
hueThe input Hue (0 to 255).
saturationThe input Saturation (0 to 255).
valueThe input Value (0 to 255).
redThe output Red (0 to 255).
greenThe output Green (0 to 255).
blueThe output Blue (0 to 255).
Note

The conversion is an approximation.

getRGBFromHSL​

static FORCE_INLINE_FUNCTION void getRGBFromHSL(uint8_thue ,
uint8_tsaturation ,
uint8_tluminance ,
uint8_t &red ,
uint8_t &green ,
uint8_t &blue
)

Convert a given color from HSV (Hue, Saturation, Value) to RGB (Red, Green, Blue).

Parameters:
hueThe input Hue (0 to 255).
saturationThe input Saturation (0 to 255).
luminanceThe input Value (0 to 255).
redThe output Red (0 to 255).
greenThe output Green (0 to 255).
blueThe output Blue (0 to 255).
Note

The conversion is an approximation.

getRGBFromHSV​

static void getRGBFromHSV(uint8_thue ,
uint8_tsaturation ,
uint8_tvalue ,
uint8_t &red ,
uint8_t &green ,
uint8_t &blue
)

Convert a given color from HSV (Hue, Saturation, Value) to RGB (Red, Green, Blue).

Parameters:
hueThe input Hue (0 to 255).
saturationThe input Saturation (0 to 255).
valueThe input Value (0 to 255).
redThe output Red (0 to 255).
greenThe output Green (0 to 255).
blueThe output Blue (0 to 255).
Note

The conversion is an approximation.

rgb565toXrgb8888​

static FORCE_INLINE_FUNCTION uint32_t rgb565toXrgb8888(uint16_trgb565)

Convert 16bit RGB565 color to 32bit ARGB8888 color by expanding the 5,6,5 colors to full 8,8, 8 colors.

The alpha value is set to zero.

Parameters:
rgb565The 16bit RGB565 color.
Returns:

The 32bit color value.

See also: