プログラマーが RGB 値から色名を取得できる Java の方法はありますか。例 : R:255、G:255、B: 0 は黄色。
ありがとうございました
いいえ、ありません; その逆だけです。Color クラスには、典型的な色の静的フィールドがあります。
Intellij IDEA には、色を定義すると、色が定義された行の左側 (行番号の近く) に実際の色が表示されるという意味で、優れた機能があります。そこをクリックすると色を選択でき、選択した色に応じて R、G、B の量が自動的に設定されます。
あなたができる最善のことは、これのマップを (本質的に) 実装した人を見つけることです。誰かがそうしたかどうかはわかりませんが、あなたが自分でそうするのを妨げるものは何もありません。プログラムで厳密に色名を決定する方法はありません。
次のようなことができます。
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, 0
、255, 255, 0
不明な色が表示されます (ただし、黄色ではありません)。人間の目には同じように見えるという事実)。256^3 = 16,777,216 色あります。全員に名前があるわけがありません。
いいえ。無数の名前のない色がまだあることを考えると、そのようなものの実行可能な実装が提供される可能性は低いです。
よく知られている色のいくつかを使用できます
Color.BLACK、Color.CYANなど