0

色の名前を取得するには JavaScript メソッドが必要です。

JavaScript関数が次のようになることを願っています

function (r,g,b)
{
  ....
  return <color name>; // like blue, cyan, magneta etc etc
}
4

4 に答える 4

2

color_classifier.js プラグインでそれを行うことができます。それはうまく機能し、名前を持つ最も近い色の名前を返します。

このように使うだけ

window.classifier = new ColorClassifier();
get_dataset('dataset.js', function (data){
    window.classifier.learn(data);
});
var result_name = window.classifier.classify("#aaf000");
于 2013-03-05T10:20:33.070 に答える
1

色の値が色に一致する組み合わせを表していることがわかっている場合は、次を使用できます。

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.

于 2013-03-05T10:40:42.550 に答える
0

標準的な既知の色はすべてここにリストされています: http://www.w3.org/TR/CSS21/syndata.html#color-units

これは既知の色の最小セットです。他のプラットフォームでは、 http ://www.w3schools.com/cssref/css_colornames.asp などのより多くの色のキーワードが提供される場合があります。

既知のカラー セットを選択し、それらを(r, g, b) -> 名前マップにするだけです。この機能は簡単に実装できます。

于 2013-03-05T10:18:53.940 に答える
0

//16 進数形式を 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;
}

//16 進数形式を 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 リンクを参照してください。--> ここをクリック

于 2013-03-05T10:26:51.077 に答える