1

プログラマーが RGB 値から色名を取得できる Java の方法はありますか。例 : R:255、G:255、B: 0 は黄色。

ありがとうございました

4

3 に答える 3

0

いいえ、ありません; その逆だけです。Color クラスには、典型的な色の静的フィールドがあります。

Intellij IDEA には、色を定義すると、色が定義された行の左側 (行番号の近く) に実際の色が表示されるという意味で、優れた機能があります。そこをクリックすると色を選択でき、選択した色に応じて R、G、B の量が自動的に設定されます。

于 2012-07-25T11:40:52.657 に答える
0

あなたができる最善のことは、これのマップを (本質的に) 実装した人を見つけることです。誰かがそうしたかどうかはわかりませんが、あなたが自分でそうするのを妨げるものは何もありません。プログラムで厳密に色名を決定する方法はありません。

次のようなことができます。

Map<Color, String> colors = new HashMap<Color, String>();

public void populateColors() {
    colors.put(new Color(255, 000, 000), "Red");
    colors.put(new Color(000, 255, 000), "Green");
    colors.put(new Color(000, 000, 255), "Blue");
    colors.put(new Color(255, 255, 000), "Yellow");
    ...
}

public String getColorName(Color color) {
    if (!colors.containsKey(color)) {
        return "Unknown";
    }

    return colors.get(color);
}

ただし、これには制限があることにも注意してください。ユーザーが色を選択できるようにしている場合 (特に、手動でテキストを入力するのではなく、カラーピッカーのような不正確なツールを使用している場合)、ユーザーが の代わりに選択した場合255, 254, 0255, 255, 0不明な色が表示されます (ただし、黄色ではありません)。人間の目には同じように見えるという事実)。256^3 = 16,777,216 色あります。全員に名前があるわけがありません。

于 2012-07-25T11:41:09.593 に答える
0

いいえ。無数の名前のない色がまだあることを考えると、そのようなものの実行可能な実装が提供される可能性は低いです。

よく知られている色のいくつかを使用できます

Color.BLACK、Color.CYANなど

ドキュメントを参照

于 2012-07-25T11:43:05.137 に答える