我正在尝试使用JavaScript转换COLORREF
:
指定显式RGB颜色时,COLORREF值具有 遵循十六进制格式:
0x00bbggrr
低位字节包含红色相对强度的值; 第二个字节包含绿色值;和第三个字节 包含蓝色的值。高位字节必须为零。该 单字节的最大值为0xFF。
要创建COLORREF颜色值,请使用RGB宏。提取 颜色的红色,绿色和蓝色组件的单个值 值,使用 GetRValue , GetGValue 和 GetBValue 宏, 分别
我知道UInt32Array
,但我不知道如何使用它。
如何将COLORREF转换为RGB?
它应该与我发现的这个功能相反:
cssColorToCOLORREF: function(csscolor) {
let rgb = csscolor.substr(1);
let rr = rgb.substr(0, 2);
let gg = rgb.substr(2, 2);
let bb = rgb.substr(4, 2);
return parseInt("0x"+bb+gg+rr);
},
答案 0 :(得分:2)
COLORREF
的typedef被称为DWORD
,它是32位无符号整数的Microsoft名称,因此其值可以拆分为R,G, B,使用常规位操作的组件。
作为阵列:
input = 4294967295;
output = [
input & 0xff,
(input >> 8) & 0xff,
(input >>16) & 0xff,
(input >>24) & 0xff
];
导致输出顺序为[red, green, blue, alpha]
;或作为对象:
output = {
r: input & 0xff,
g:(input >> 8) & 0xff,
b:(input >>16) & 0xff,
a:(input >>24) & 0xff
};
产生output.r
,output.g
,output.b
和output.a
。