<<<上一篇—②:EasyX函数-设备相关
系列文章
①:安装及基本概念 ②:EasyX函数-设备相关 ③:EasyX函数-颜色模型
前言
作者也是个小白,本【教程】充其量算个学习笔记,若有写的不正确的地方还请指教。
四、EasyX函数 之 颜色模型
-
交换颜色 - BGR() 作用:交换颜色中的红色和蓝色。 注:EasyX中内存中颜色表示为b-g-r,显示缓冲区中是r-g-b,可以输入BGR(0xaabbcc) ,将红蓝(即变成0xccbbaa )换位。 函数原型: COLORREF BGR(COLORREF color);
参数:
-
c
o
l
o
r
color
color:需要交换的颜色
返回值:交换后的颜色。
-
合成颜色 - RGB() 作用:将红、绿、蓝颜色分量合成颜色。 函数原型: COLORREF RGB(
BYTE byRed,
BYTE byGreen,
BYTE byBlue
);
参数:
-
b
y
R
e
d
byRed
byRed:颜色的红色部分,
∈
[
0
,
255
]
\in[0,255]
∈[0,255]。
-
b
r
G
r
e
e
n
brGreen
brGreen:颜色的绿色部分,
∈
[
0
,
255
]
\in[0,255]
∈[0,255]。
-
b
y
B
l
u
e
byBlue
byBlue:颜色的蓝色部分,
∈
[
0
,
255
]
\in[0,255]
∈[0,255]。
返回值:合成的颜色。 注:可以通过 GetRValue、GetGValue、GetBValue分离出颜色分量。(见下Get*Value() )
-
分离颜色 - Get*Value() 作用:获取指定颜色中某个颜色值。 函数原型: BYTE GetBValue(COLORREF rgb);
BYTE GetGValue(COLORREF rgb);
BYTE GetRValue(COLORREF rgb);
参数:
返回值:颜色中的r/g/b值,
r
,
g
,
b
∈
[
0
,
255
]
r,g,b\in[0,255]
r,g,b∈[0,255]。
-
HSL转换 - HSLtoRGB() & RGBtoHSL() 作用:转换 HSL 颜色和 RGB 颜色。 函数原型: COLORREF HSLtoRGB(
float H,
float S,
float L
);
void RGBtoHSL(
COLORREF rgb,
float *H,
float *S,
float *L
);
参数: HSLtoRGB():
-
H
H
H:原 HSL 颜色模型的 Hue(色相) 分量,
H
∈
[
0
,
360
]
H\in[0,360]
H∈[0,360]。
-
S
S
S:原 HSL 颜色模型的 Saturation(饱和度) 分量,
S
∈
[
0
,
1
]
S\in[0,1]
S∈[0,1]。
-
L
L
L:原 HSL 颜色模型的 Lightness(亮度) 分量,
L
∈
[
0
,
1
]
L\in[0,1]
L∈[0,1]。
RGBtoHSL():
-
r
g
b
rgb
rgb:原 RGB 颜色。
-
H
H
H:返回 HSL 颜色模型的 Hue(色相) 分量的地址,
H
∈
[
0
,
360
]
H\in[0,360]
H∈[0,360]。
-
S
S
S:返回 HSL 颜色模型的 Saturation(饱和度) 分量的地址,
S
∈
[
0
,
1
]
S\in[0,1]
S∈[0,1]。
-
L
L
L:用于返回 HSL 颜色模型的 Lightness(亮度) 分量的地址,
L
∈
[
0
,
1
]
L\in[0,1]
L∈[0,1]。
实例:见①-二-颜色-4.
-
HSV转换 - HSVtoRGB() & RGBtoHSV() 类似HSL: HSV. COLORREF HSVtoRGB(
float H,
float S,
float V
);
void RGBtoHSV(
COLORREF rgb,
float *H,
float *S,
float *V
);
结语
精力、时间有限,先写到这,下期见!
@HaohaoCppDebuger|寻兰? 2021/10/24?
-----THE END----- THANK YOU !
|