java中是否有任何可能的方法允许程序员从RGB值中检索颜色名称。例如:R:255,G:255,B:0为黄色。
谢谢
答案 0 :(得分:0)
不,没有;只是相反。 Color类中有静态字段用于典型颜色。
Intellij IDEA有一个很好的功能,在这个意义上,当您定义颜色时,实际颜色显示在颜色定义的线条左侧(行号附近)。单击此处可以选择颜色,R,G和B的数量会根据所选颜色自动设置。
答案 1 :(得分: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, 0
而不是255, 255, 0
,那么他们会得到一种未知的颜色(不是黄色,尽管事实上它们看起来与人眼相同)。有256 ^ 3 = 16,777,216种颜色。他们都没有名字。
答案 2 :(得分:0)