颜色对话框使用的颜色模型

【勇芳软件工作室】汉化HomePreviousNext

颜色对话框的自定义颜色扩展允许用户使用RGB或HSL值指定颜色。但是,CHOOSECOLOR结构仅使用RGB值来报告用户创建或选择的颜色。

RGB颜色模型

RGB模型用于指示显示器和其他发光的设备的颜色。有效的红色,绿色和蓝色值范围为0到255,0表示最小强度,255表示最大强度。下图显示了如何将原色红,绿和蓝组合起来,以产生四种附加颜色。(对于显示设备,当红色,绿色和蓝色值设置为0时,颜色为黑色。在显示技术方面,黑色是没有所有颜色。)

以下是八种颜色及其相关的RGB值。

颜色RGB值
255, 0, 0
绿色0, 255, 0
蓝色0, 0, 255
青色0, 255, 255
品红255, 0, 255
黄色255, 255, 0
白色255, 255, 255
黑色0, 0, 0

Windows将内部颜色存储为具有以下十六进制形式的32位RGB值:

0x00bbggrr

低位字节包含红色相对强度的值;第二个字节包含一个绿色值;第三个字节包含一个蓝色的值。高位字节必须为零。

您可以使用RGB宏根据红色,绿色和蓝色组件的指定强度获取RGB值。使用GetRValueGetBValueGetGValue宏从RGB颜色值中提取单个颜色。

HSL颜色模型

颜色对话框提供了指定HSL值的控件。下图显示了颜色对话框中出现的色谱控制和亮度滑块控制。该图还显示了用户可以使用这些控件指定的值的范围。

在颜色对话框中,饱和度和亮度值必须在0到240之间,色相值必须在0到239之间。

将HSL值转换为RGB值

Color对话框的COMDLG32.DLL中提供的对话框过程包含将HSL值转换为相应RGB值的代码。以下是几种颜色及其相关的HSL和RGB值。

颜色HSL值RGB值
(0, 240, 120)(255, 0, 0)
黄色(40, 240, 120)(255, 255, 0)
绿色(80, 240, 120)(0, 255, 0)
青色(120, 240, 120)(0, 255, 255)
蓝色(160, 240, 120)(0, 0, 255)
品红(200, 240, 120)(255, 0, 255)
白色(0, 0, 240)(255, 255, 255)
黑色(0, 0, 0)(0, 0, 0)