需要一个javascript方法来获取颜色名称。
希望javascript函数看起来如下
function (r,g,b)
{
....
return <color name>; // like blue, cyan, magneta etc etc
}
答案 0 :(得分:2)
你可以使用color_classifier.js plug in来做到这一点。它工作正常,并返回具有名称的最近颜色的名称。
就像这样使用
window.classifier = new ColorClassifier();
get_dataset('dataset.js', function (data){
window.classifier.learn(data);
});
var result_name = window.classifier.classify("#aaf000");
答案 1 :(得分:0)
此处列出了所有标准已知颜色:http://www.w3.org/TR/CSS21/syndata.html#color-units
这是已知颜色的最小集合,其他平台可能会提供更多颜色关键字,例如:http://www.w3schools.com/cssref/css_colornames.asp
只需选择您已知的颜色集,使它们成为(r,g,b) - &gt;名称地图,此功能易于实施
答案 2 :(得分:0)
//将十六进制格式转换为rgb颜色的函数
function rgb2hex(rgb){
rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
return "#" +
("0" + parseInt(rgb[1],10).toString(16)).slice(-2) +
("0" + parseInt(rgb[2],10).toString(16)).slice(-2) +
("0" + parseInt(rgb[3],10).toString(16)).slice(-2);
}
以下是如何将此代码与jQuery一起使用的示例:
document.write( rgb2hex($('#myElement').css('background-color')) );
// outputs: #222222
现在您可以使用此输出并与任何开关功能进行比较,以了解此颜色的名称
switch(color_code){
case '#111111' : return ColorOne; break;
case '#222222' : return ColorTwo; break;
case '#333333' : return ColorThree; break;
}
//将十六进制格式转换为rgb颜色的函数
function rgb2hex(rgb) {
var hexDigits = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];
rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
function hex(x) {
return isNaN(x) ? "00" : hexDigits[(x - x % 16) / 16] + hexDigits[x % 16];
}
return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
}
请参阅此JSFiddle链接可能会有所帮助。 - &GT; ClickHere
答案 3 :(得分:0)
如果您知道颜色值代表与颜色匹配的组合,您可以使用:
function getName(r, g, b) {
switch ((r >> 5)*100+(g >> 5)*10+(b >> 5)) {
case 400: return "maroon";
case 700: return "red";
case 750: return "orange";
case 770: return "yellow";
case 440: return "olive";
case 404: return "purple";
case 707: return "fuchsia";
case 777: return "white";
case 070: return "lime";
case 040: return "green";
case 004: return "navy";
case 007: return "blue";
case 077: return "aqua";
case 044: return "teal";
case 000: return "black";
case 666: return "silver";
case 444: return "gray";
}
}
对于与颜色不匹配的颜色值,它可能会返回相似的颜色(例如getName(230,240,250)
返回"white"
)或undefined
。