我有XML文件,其中Elements Back颜色在节点中可用,其中节点的颜色值以Win32颜色值的形式存储。现在想要将此值转换为Hex值,以便我可以在jQuery中将其用作CSS属性。
示例如下
<INPUTBACKCOLOR>33023</INPUTBACKCOLOR>
将其更改为
$("elemet").css('background-color',"#SomeHexValueFromINPUTBACKCOLORNode")
我该怎么做?
答案 0 :(得分:1)
以下是代码:
color = 33023;
r = color & 0x000000FF;
g = ( color & 0x0000FF00 ) >> 8;
b = ( color & 0x00FF0000 ) >> 16;
alert(r+" "+g+" "+b);
它将颜色转换为rgb,现在您可以将其转换为十六进制或者可以使用rgb()表达式。
function getColor(color)
{
r = color & 0x000000FF;
g = ( color & 0x0000FF00 ) >> 8;
b = ( color & 0x00FF0000 ) >> 16;
return "rgb("+r+","+g+","+b+")";
}
function getColorAndAlpha(color)
{
r = color & 0x000000FF;
g = ( color & 0x0000FF00 ) >> 8;
b = ( color & 0x00FF0000 ) >> 16;
a = ( color & 0xFF000000 ) >> 24;
return "rgba("+r+","+g+","+b+","+a+")";
}
答案 1 :(得分:1)
您的源颜色存储在COLORREF中,因此其结构的格式为0x00bbggrr
(十六进制)。
因此,要将其转换为CSS表示形式,您必须:
#
。可以通过以下方式实现:
var cssColor = "000000" + parseInt(sourceColor, 10).toString(16);
cssColor = cssColor.substr(cssColor.length - 6);
cssColor = "#" + cssColor.substr(4, 2) + cssColor.substr(2, 2)
+ cssColor.substr(0, 2)