java中是否有任何可能的方法允许程序员从RGB值中检索颜色名称。Ex : 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 种颜色。他们不可能都有名字。