function resolve_color(color){
// return an array containing R, G and B values
if(color === 'transparent')// IE (6 and ?)
color = '#FFF';
var r,g,b;
var hex_color_pcre = new RegExp("^#[0-9a-f]{3}([0-9a-f]{3})?$",'gi');
var rgb_color_pcre = new RegExp("rgb\\(\\s*((?:[0-2]?[0-9])?[0-9])\\s*,\\s*((?:[0-2]?[0-9])?[0-9])\\s*,\\s*((?:[0-2]?[0-9])?[0-9])\\s*\\)$",'gi');
var rgb_percent_color_pcre = new RegExp("rgb\\(\\s*((?:[0-1]?[0-9])?[0-9])%\\s*,\\s*((?:[0-1]?[0-9])?[0-9])%\\s*,\\s*((?:[0-1]?[0-9])?[0-9])%\\s*\\)$",'gi');
if(color.match(hex_color_pcre)){
if(color.length == 4){
r = color.charAt(1)+""+color.charAt(1);
g = color.charAt(2)+""+color.charAt(2);
b = color.charAt(3)+""+color.charAt(3);
}
else{
r = color.charAt(1)+""+color.charAt(2);
g = color.charAt(3)+""+color.charAt(4);
b = color.charAt(5)+""+color.charAt(6);
}
r = h2d(r);
g = h2d(g);
b = h2d(b);
}
else if(color.match(rgb_color_pcre)){
r = RegExp.$1;
g = RegExp.$2;
b = RegExp.$3;
}
else if(color.match(rgb_percent_color_pcre)){
r = parseInt((RegExp.$1)*2.55);
g = parseInt((RegExp.$2)*2.55);
b = parseInt((RegExp.$3)*2.55);
}
else
return false;
var returned =[];
returned['red'] = r;
returned['green'] = g;
returned['blue'] = b;
return returned;
}
function h2d(h) {
// hex to decimal
return parseInt(h,16);
}
4条答案
按热度按时间68bkxrlz1#
要将colorName转换为RGB或HEX,您首先需要一个颜色名称字典和相应的值,然后您可以:
6ie5vjzr2#
使用
window.getComputedStyle(elem, null).getPropertyValue("background-color");
获取background-color字符串,然后检查其格式是否符合要求。颜色名称列表可以在网上找到。访问this site获取颜色名称列表(可能是not complete)。
deyfvvtc3#
这个函数会得到r、g和B,你可以用它们来创建你想要的任何格式:
在所有示例中,color_N为:
功能
来源:http://www.kadimi.com/en/javascript-tween-function-368
ac1kyiln4#
或者你可以只是调出调色板使用word,excel或powerpoint和颜色选项之一(如填充),并输入十六进制值...它会给予你的RGB值。