App:Library:LVGL:docs:Overview:Colors

提供: robot-jp wiki
ナビゲーションに移動検索に移動

https://docs.lvgl.io/8.2/overview/color.html

Colors

英文 自動翻訳

The color module handles all color-related functions like changing color depth, creating colors from hex code, converting between color depths, mixing colors, etc.

The type lv_color_t is used to store a color. Its fields are set according to LV_COLOR_DEPTH in lv_conf.h. (See below)


You may set LV_COLOR_16_SWAP in lv_conf.h to swap bytes of RGB565 colors.


You may need this when sending 16-bit colors via a byte-oriented interface like SPI.

As 16-bit numbers are stored in little-endian format (lower byte at the lower address), the interface will send the lower byte first.


However, displays usually need the higher byte first.

A mismatch in the byte order will result in highly distorted colors.

カラーモジュールは、色深度の変更、16進コードからの色の作成、色深度間の変換、色の混合など、すべての色関連機能を処理します。

タイプ lv_color_t は、色を格納するために使用されます。 そのフィールドはlv_conf.hLV_COLOR_DEPTH に従って設定されます。(下記参照)


lv_conf.hLV_COLOR_16_SWAP 設定して、RGB565色のバイトを交換できます。


SPIのようなバイト指向のインターフェースを介して16ビットカラーを送信する場合にこれが必要になることがあります。

16ビットの数値はリトルエンディアン形式(下位アドレスの下位バイト)で格納されるため、インターフェイスは下位バイトを最初に送信します。


ただし、通常、ディスプレイには最初に上位バイトが必要です。

バイト順序の不一致は、非常に歪んだ色になります。

戻る : Previous


Creating colors

RGB

英文 自動翻訳

Create colors from Red, Green and Blue channel values:

 //All channels are 0-255
 lv_color_t c = lv_color_make(red, green, blue);
 
 //From hex code 0x000000..0xFFFFFF interpreted as RED + GREEN + BLUE
 lv_color_t c = lv_color_hex(0x123456); 
 
 //From 3 digits. Same as lv_color_hex(0x112233)
 lv_color_t c = lv_color_hex3(0x123);
赤、緑、青のチャンネル値から色を作成します。
 //All channels are 0-255
 lv_color_t c = lv_color_make(red, green, blue);
 
 //From hex code 0x000000..0xFFFFFF interpreted as RED + GREEN + BLUE
 lv_color_t c = lv_color_hex(0x123456); 
 
 //From 3 digits. Same as lv_color_hex(0x112233)
 lv_color_t c = lv_color_hex3(0x123);
戻る : Previous


HSV

英文 自動翻訳

Create colors from Hue, Saturation and Value values:

 //h = 0..359, s = 0..100, v = 0..100
 lv_color_t c = lv_color_hsv_to_rgb(h, s, v);
 
 //All channels are 0-255
 lv_color_hsv_t c_hsv = lv_color_rgb_to_hsv(r, g, b);
 
 
 //From lv_color_t variable
 lv_color_hsv_t c_hsv = lv_color_to_hsv(color);
色相、彩度、値の値から色を作成します。
 //h = 0..359, s = 0..100, v = 0..100
 lv_color_t c = lv_color_hsv_to_rgb(h, s, v);
 
 //All channels are 0-255
 lv_color_hsv_t c_hsv = lv_color_rgb_to_hsv(r, g, b);
 
 
 //From lv_color_t variable
 lv_color_hsv_t c_hsv = lv_color_to_hsv(color);
戻る : Previous


Palette

英文 自動翻訳

LVGL includes Material Design's palette of colors.

In this system all named colors have a nominal main color as well as four darker and five lighter variants.

The names of the colors are as follows:

  • LV_PALETTE_RED
  • LV_PALETTE_PINK
  • LV_PALETTE_PURPLE
  • LV_PALETTE_DEEP_PURPLE
  • LV_PALETTE_INDIGO
  • LV_PALETTE_BLUE
  • LV_PALETTE_LIGHT_BLUE
  • LV_PALETTE_CYAN
  • LV_PALETTE_TEAL
  • LV_PALETTE_GREEN
  • LV_PALETTE_LIGHT_GREEN
  • LV_PALETTE_LIME
  • LV_PALETTE_YELLOW
  • LV_PALETTE_AMBER
  • LV_PALETTE_ORANGE
  • LV_PALETTE_DEEP_ORANGE
  • LV_PALETTE_BROWN
  • LV_PALETTE_BLUE_GREY
  • LV_PALETTE_GREY

To get the main color use lv_color_t c = lv_palette_main(LV_PALETTE_...).


For the lighter variants of a palette color use lv_color_t c = lv_palette_lighten(LV_PALETTE_..., v).


v can be 1..5.


For the darker variants of a palette color use lv_color_t c = lv_palette_darken(LV_PALETTE_..., v).


v can be 1..4.

LVGLには、マテリアルデザインの色のパレットが含まれています。

このシステムでは、すべての名前の付いた色に、名目上のメインカラーと、4つの暗い色と5つの明るい色があります。

色の名前は次のとおりです。

  • LV_PALETTE_RED
  • LV_PALETTE_PINK
  • LV_PALETTE_PURPLE
  • LV_PALETTE_DEEP_PURPLE
  • LV_PALETTE_INDIGO
  • LV_PALETTE_BLUE
  • LV_PALETTE_LIGHT_BLUE
  • LV_PALETTE_CYAN
  • LV_PALETTE_TEAL
  • LV_PALETTE_GREEN
  • LV_PALETTE_LIGHT_GREEN
  • LV_PALETTE_LIME
  • LV_PALETTE_YELLOW
  • LV_PALETTE_AMBER
  • LV_PALETTE_ORANGE
  • LV_PALETTE_DEEP_ORANGE
  • LV_PALETTE_BROWN
  • LV_PALETTE_BLUE_GREY
  • LV_PALETTE_GREY


メインカラーを取得するには、lv_color_t c = lv_palette_main(LV_PALETTE_...)を使用します。


パレットカラーの明るいバリエーションには、lv_color_t c = lv_palette_lighten(LV_PALETTE_..., v)を使用します。


v は1..5にすることができます。


パレットカラーの暗いバリエーションには、lv_color_t c = lv_palette_darken(LV_PALETTE_..., v))を使用します。


v は1..4にすることができます。

戻る : Previous


Modify and mix colors

英文 自動翻訳

The following functions can modify a color:

 // Lighten a color. 0: no change, 255: white
 lv_color_t c = lv_color_lighten(c, lvl);
 
 // Darken a color. 0: no change, 255: black
 lv_color_t c = lv_color_darken(lv_color_t c, lv_opa_t lvl);
 
 // Lighten or darken a color. 0: black, 128: no change 255: white
 lv_color_t c = lv_color_change_lightness(lv_color_t c, lv_opa_t lvl);
 
 
 // Mix two colors with a given ratio 0: full c2, 255: full c1, 128: half c1 and half c2
 lv_color_t c = lv_color_mix(c1, c2, ratio);
次の関数で色を変更できます。
 // Lighten a color. 0: no change, 255: white
 lv_color_t c = lv_color_lighten(c, lvl);
 
 // Darken a color. 0: no change, 255: black
 lv_color_t c = lv_color_darken(lv_color_t c, lv_opa_t lvl);
 
 // Lighten or darken a color. 0: black, 128: no change 255: white
 lv_color_t c = lv_color_change_lightness(lv_color_t c, lv_opa_t lvl);
 
 
 // Mix two colors with a given ratio 0: full c2, 255: full c1, 128: half c1 and half c2
 lv_color_t c = lv_color_mix(c1, c2, ratio);
戻る : Previous


Built-in colors

英文 自動翻訳

lv_color_white() and lv_color_black() return 0xFFFFFF and 0x000000 respectively.

lv_color_white()lv_color_black() は、それぞれ 0xFFFFFF0x000000 を返します。
戻る : Previous


Opacity

英文 自動翻訳

To describe opacity the lv_opa_t type is created from uint8_t.

Some special purpose defines are also introduced:

  • LV_OPA_TRANSP Value: 0, means no opacity making the color completely transparent
  • LV_OPA_10 Value: 25, means the color covers only a little
  • LV_OPA_20 ... OPA_80 follow logically
  • LV_OPA_90 Value: 229, means the color near completely covers
  • LV_OPA_COVER Value: 255, means the color completely covers (full opacity)

You can also use the LV_OPA_* defines in lv_color_mix() as a mixing ratio.

不透明度を説明するために、lv_opa_tタイプはuint8_tから作成されます。

いくつかの特別な目的の定義も導入されています。

  • LV_OPA_TRANSP Value: 0, 不透明度なしを意味し、色は完全に透明になります。
  • LV_OPA_10 Value: 25, 色が少ししか隠れないことを意味する。
  • LV_OPA_20 ... OPA_80 論理的に続く
  • LV_OPA_90 Value: 229, 完全に近い色であることを意味する。
  • LV_OPA_COVER Value: 255, 色が完全に隠れる(完全な不透明度)ことを意味します。


混合比としてlv_color_mix()と定義されているLV_OPA_*を使用することもできます。

戻る : Previous


Color types

英文 自動翻訳

The following variable types are defined by the color module:

  • lv_color1_t Monochrome color. Also has R, G, B fields for compatibility but they are always the same value (1 byte)
  • lv_color8_t A structure to store R (3 bit),G (3 bit),B (2 bit) components for 8-bit colors (1 byte)
  • lv_color16_t A structure to store R (5 bit),G (6 bit),B (5 bit) components for 16-bit colors (2 byte)
  • lv_color32_t A structure to store R (8 bit),G (8 bit), B (8 bit) components for 24-bit colors (4 byte)
  • lv_color_t Equal to lv_color1/8/16/24_t depending on the configured color depth setting
  • lv_color_int_t uint8_t, uint16_t or uint32_t depending on the color depth setting. Used to build color arrays from plain numbers.
  • lv_opa_t A simple uint8_t type to describe opacity.

The lv_color_t, lv_color1_t, lv_color8_t, lv_color16_t and lv_color32_t types have four fields:

  • ch.red red channel
  • ch.green green channel
  • ch.blue blue channel
  • full* red + green + blue as one number


You can set the current color depth in lv_conf.h, by setting the LV_COLOR_DEPTH define to 1 (monochrome), 8, 16 or 32.

カラーモジュールでは以下の変数型が定義されている。
  • lv_color1_t モノクロの色。互換性のためにR, G, Bフィールドも持つが、常に同じ値(1バイト)である。
  • lv_color8_t 8 ビットカラーの R(3 bit),G(3 bit),B(2 bit) 成分を格納する構造体(1 byte)。
  • lv_color16_t 16 ビット色用の R(5 ビット),G(6 ビット),B(5 ビット)成分を格納する構造体(2 バイト)
  • lv_color32_t 24 ビット色用の R(8 ビット),G(8 ビット),B(8 ビット) 成分を格納する構造体(4 バイト)。
  • lv_color_t 色深度の設定に応じて lv_color1/8/16/24_t に等しくなる。
  • lv_color_int_t uint8_t, uint16_t or uint32_t (色深度設定に依存)。プレーンな数値から色配列を構築するために使用される。
  • lv_opa_t 不透明度を表すためのシンプルな uint8_t型。

lv_color_t, lv_color1_t, lv_color8_t, lv_color16_t , lv_color32_t 型は、4つのフィールドを持ちます。

  • ch.red 赤チャンネル
  • ch.green 緑チャンネル
  • ch.blue 青チャンネル
  • full* 赤+緑+青を1つの数値で表す。


LV_COLOR_DEPTH 定義に1(白黒)、8、16、32を設定することで、lv_conf.hで現在の色深度を設定することができます。

戻る : Previous


Convert color

英文 自動翻訳

You can convert a color from the current color depth to another.

The converter functions return with a number, so you have to use the full field to map a converted color back into a structure:

 lv_color_t c;
 c.red   = 0x38;
 c.green = 0x70;
 c.blue  = 0xCC;
 
 lv_color1_t c1;
 c1.full = lv_color_to1(c);	/*Return 1 for light colors, 0 for dark colors*/
 
 lv_color8_t c8;
 c8.full = lv_color_to8(c);	/*Give a 8 bit number with the converted color*/
 
 lv_color16_t c16;
 c16.full = lv_color_to16(c); /*Give a 16 bit number with the converted color*/
 
 lv_color32_t c24;
 c32.full = lv_color_to32(c);	/*Give a 32 bit number with the converted color*/
You can convert a color from the current color depth to another.

The converter functions return with a number, so you have to use the field to map a converted color back into a structure:

現在の色深度から別の色に変換することができます。

変換関数は数値で返すので、変換された色を構造体にマッピングして戻すには、full フィールドを使用する必要があります。
 lv_color_t c;
 c.red   = 0x38;
 c.green = 0x70;
 c.blue  = 0xCC;
 
 lv_color1_t c1;
 c1.full = lv_color_to1(c);	/*Return 1 for light colors, 0 for dark colors*/
 
 lv_color8_t c8;
 c8.full = lv_color_to8(c);	/*Give a 8 bit number with the converted color*/
 
 lv_color16_t c16;
 c16.full = lv_color_to16(c); /*Give a 16 bit number with the converted color*/
 
 lv_color32_t c24;
 c32.full = lv_color_to32(c);	/*Give a 32 bit number with the converted color*/
戻る : Previous


API

英文 自動翻訳

Typedefs

typedef lv_color_t (*lv_color_filter_cb_t)(const struct _lv_color_filter_dsc_t*, lv_color_t, lv_opa_t)

typedef struct _lv_color_filter_dsc_t lv_color_filter_dsc_t

Enums

enum [anonymous]

Opacity percentages. Values:
enumerator LV_OPA_TRANSP
enumerator LV_OPA_0
enumerator LV_OPA_10
enumerator LV_OPA_20
enumerator LV_OPA_30
enumerator LV_OPA_40
enumerator LV_OPA_50
enumerator LV_OPA_60
enumerator LV_OPA_70
enumerator LV_OPA_80
enumerator LV_OPA_90
enumerator LV_OPA_100
enumerator LV_OPA_COVER

enum lv_palette_t

Values:
enumerator LV_PALETTE_RED
enumerator LV_PALETTE_PINK
enumerator LV_PALETTE_PURPLE
enumerator LV_PALETTE_DEEP_PURPLE
enumerator LV_PALETTE_INDIGO
enumerator LV_PALETTE_BLUE
enumerator LV_PALETTE_LIGHT_BLUE
enumerator LV_PALETTE_CYAN
enumerator LV_PALETTE_TEAL
enumerator LV_PALETTE_GREEN
enumerator LV_PALETTE_LIGHT_GREEN
enumerator LV_PALETTE_LIME
enumerator LV_PALETTE_YELLOW
enumerator LV_PALETTE_AMBER
enumerator LV_PALETTE_ORANGE
enumerator LV_PALETTE_DEEP_ORANGE
enumerator LV_PALETTE_BROWN
enumerator LV_PALETTE_BLUE_GREY
enumerator LV_PALETTE_GREY
enumerator _LV_PALETTE_LAST
enumerator LV_PALETTE_NONE

Functions

LV_EXPORT_CONST_INT(LV_COLOR_DEPTH)

LV_EXPORT_CONST_INT(LV_COLOR_16_SWAP)

typedef LV_CONCAT3 (uint, LV_COLOR_SIZE, _t) lv_color_int_t

typedef LV_CONCAT3 (lv_color, LV_COLOR_DEPTH, _t) lv_color_t

static inline uint8_t lv_color_to1(lv_color_t color)

static inline uint8_t lv_color_to8(lv_color_t color)

static inline uint16_t lv_color_to16(lv_color_t color)

static inline uint32_t lv_color_to32(lv_color_t color)

static inline uint8_t lv_color_brightness(lv_color_t color)

Get the brightness of a color
Parameters
color -- a color
Returns
the brightness [0..255]

static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b)

static inline lv_color_t lv_color_hex(uint32_t c)

static inline lv_color_t lv_color_hex3(uint32_t c)

static inline void lv_color_filter_dsc_init(lv_color_filter_dsc_t *dsc, lv_color_filter_cb_t cb)

lv_color_t lv_color_lighten(lv_color_t c, lv_opa_t lvl)

lv_color_t lv_color_darken(lv_color_t c, lv_opa_t lvl)

lv_color_t lv_color_change_lightness(lv_color_t c, lv_opa_t lvl)

lv_color_t lv_color_hsv_to_rgb(uint16_t h, uint8_t s, uint8_t v)

Convert a HSV color to RGB
Parameters
  • h -- hue [0..359]
  • s -- saturation [0..100]
  • v -- value [0..100]
Returns
the given RGB color in RGB (with LV_COLOR_DEPTH depth)

lv_color_hsv_t lv_color_rgb_to_hsv(uint8_t r8, uint8_t g8, uint8_t b8)

Convert a 32-bit RGB color to HSV
Parameters
  • r8 -- 8-bit red
  • g8 -- 8-bit green
  • b8 -- 8-bit blue
Returns
the given RGB color in HSV

lv_color_hsv_t lv_color_to_hsv(lv_color_t color)

Convert a color to HSV
Parameters
color -- color
Returns
the given color in HSV

static inline lv_color_t lv_color_chroma_key(void)

Just a wrapper around LV_COLOR_CHROMA_KEY because it might be more convenient to use a function is some cases
Returns
LV_COLOR_CHROMA_KEY

lv_color_t lv_palette_main(lv_palette_t p)

static inline lv_color_t lv_color_white(void)

static inline lv_color_t lv_color_black(void)

lv_color_t lv_palette_lighten(lv_palette_t p, uint8_t lvl)

lv_color_t lv_palette_darken(lv_palette_t p, uint8_t lvl)

union lv_color1_t

Public Members
uint8_t full
uint8_t blue
uint8_t green
uint8_t red
union lv_color1_t::[anonymous] ch

union lv_color8_t

Public Members
uint8_t blue
uint8_t green
uint8_t red
struct lv_color8_t::[anonymous] ch
uint8_t full


union lv_color16_t

Public Members
uint16_t blue
uint16_t green
uint16_t red
uint16_t green_h
uint16_t green_l
struct lv_color16_t::[anonymous] ch
uint16_t full


union lv_color32_t

Public Members
uint8_t blue
uint8_t green
uint8_t red
uint8_t alpha
struct lv_color32_t::[anonymous] ch
uint32_t full


struct lv_color_hsv_t

Public Members
uint16_t h
uint8_t s
uint8_t v

struct _lv_color_filter_dsc_t

Public Members
lv_color_filter_cb_t filter_cb
void *user_data
Typedefs

typedef lv_color_t (*lv_color_filter_cb_t)(const struct _lv_color_filter_dsc_t*, lv_color_t, lv_opa_t)

typedef struct _lv_color_filter_dsc_t lv_color_filter_dsc_t

Enums

enum [anonymous]

不透明度のパーセンテージ。 Values:
enumerator LV_OPA_TRANSP
enumerator LV_OPA_0
enumerator LV_OPA_10
enumerator LV_OPA_20
enumerator LV_OPA_30
enumerator LV_OPA_40
enumerator LV_OPA_50
enumerator LV_OPA_60
enumerator LV_OPA_70
enumerator LV_OPA_80
enumerator LV_OPA_90
enumerator LV_OPA_100
enumerator LV_OPA_COVER

enum lv_palette_t

Values:
enumerator LV_PALETTE_RED
enumerator LV_PALETTE_PINK
enumerator LV_PALETTE_PURPLE
enumerator LV_PALETTE_DEEP_PURPLE
enumerator LV_PALETTE_INDIGO
enumerator LV_PALETTE_BLUE
enumerator LV_PALETTE_LIGHT_BLUE
enumerator LV_PALETTE_CYAN
enumerator LV_PALETTE_TEAL
enumerator LV_PALETTE_GREEN
enumerator LV_PALETTE_LIGHT_GREEN
enumerator LV_PALETTE_LIME
enumerator LV_PALETTE_YELLOW
enumerator LV_PALETTE_AMBER
enumerator LV_PALETTE_ORANGE
enumerator LV_PALETTE_DEEP_ORANGE
enumerator LV_PALETTE_BROWN
enumerator LV_PALETTE_BLUE_GREY
enumerator LV_PALETTE_GREY
enumerator _LV_PALETTE_LAST
enumerator LV_PALETTE_NONE

Functions

LV_EXPORT_CONST_INT(LV_COLOR_DEPTH)

LV_EXPORT_CONST_INT(LV_COLOR_16_SWAP)

typedef LV_CONCAT3 (uint, LV_COLOR_SIZE, _t) lv_color_int_t

typedef LV_CONCAT3 (lv_color, LV_COLOR_DEPTH, _t) lv_color_t

static inline uint8_t lv_color_to1(lv_color_t color)

static inline uint8_t lv_color_to8(lv_color_t color)

static inline uint16_t lv_color_to16(lv_color_t color)

static inline uint32_t lv_color_to32(lv_color_t color)

static inline uint8_t lv_color_brightness(lv_color_t color)

色の明るさを取得します
Parameters
color -- 色
Returns
明るさ [0..255]

static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b)

static inline lv_color_t lv_color_hex(uint32_t c)

static inline lv_color_t lv_color_hex3(uint32_t c)

static inline void lv_color_filter_dsc_init(lv_color_filter_dsc_t *dsc, lv_color_filter_cb_t cb)

lv_color_t lv_color_lighten(lv_color_t c, lv_opa_t lvl)

lv_color_t lv_color_darken(lv_color_t c, lv_opa_t lvl)

lv_color_t lv_color_change_lightness(lv_color_t c, lv_opa_t lvl)

lv_color_t lv_color_hsv_to_rgb(uint16_t h, uint8_t s, uint8_t v)

HSV色をRGBに変換する
Parameters
  • h -- 色相(Hue)[0..359]
  • s -- 彩度(Saturation・Chroma) [0..100]
  • v -- 明度(Value・Brightness)[0..100]
Returns
RGBで指定されたRGBカラー(LV_COLOR_DEPTH深度を使用)

lv_color_hsv_t lv_color_rgb_to_hsv(uint8_t r8, uint8_t g8, uint8_t b8)

32ビットRGBカラーをHSVに変換します
Parameters
  • r8 -- 8-bit red
  • g8 -- 8-bit green
  • b8 -- 8-bit blue
Returns
HSVで指定されたRGBカラー

lv_color_hsv_t lv_color_to_hsv(lv_color_t color)

色をHSVに変換する
Parameters
color -- 色
Returns
HSVで指定された色

static inline lv_color_t lv_color_chroma_key(void)

関数を使用する方が便利な場合があるため、LV_COLOR_CHROMA_KEYのラッパーにすぎない場合があります。
Returns
LV_COLOR_CHROMA_KEY

lv_color_t lv_palette_main(lv_palette_t p)

static inline lv_color_t lv_color_white(void)

static inline lv_color_t lv_color_black(void)

lv_color_t lv_palette_lighten(lv_palette_t p, uint8_t lvl)

lv_color_t lv_palette_darken(lv_palette_t p, uint8_t lvl)

union lv_color1_t

Public Members
uint8_t full
uint8_t blue
uint8_t green
uint8_t red
union lv_color1_t::[anonymous] ch

union lv_color8_t

Public Members
uint8_t blue
uint8_t green
uint8_t red
struct lv_color8_t::[anonymous] ch
uint8_t full


union lv_color16_t

Public Members
uint16_t blue
uint16_t green
uint16_t red
uint16_t green_h
uint16_t green_l
struct lv_color16_t::[anonymous] ch
uint16_t full


union lv_color32_t

Public Members
uint8_t blue
uint8_t green
uint8_t red
uint8_t alpha
struct lv_color32_t::[anonymous] ch
uint32_t full


struct lv_color_hsv_t

Public Members
uint16_t h
uint8_t s
uint8_t v

struct _lv_color_filter_dsc_t

Public Members
lv_color_filter_cb_t filter_cb
void *user_data


戻る : Previous