我有一个返回十进制值的java代码,如下所示
[1.0, 0.0, 0.0] for Red
[0.0, 1.0, 0.0] for Green
第一个值表示红色的颜色代码,第二个值表示绿色的颜色代码,第三个值表示蓝色的颜色代码。
我们有什么办法可以将这些RGB值转换成java中的相应颜色吗?
答案 0 :(得分:2)
有example返回颜色名称,这取决于使用Reflection获取颜色的名称(java.awt.Color)
public static String getNameReflection(Color colorParam) {
try {
//first read all fields in array
Field[] field = Class.forName("java.awt.Color").getDeclaredFields();
for (Field f : field) {
String colorName = f.getName();
Class<?> t = f.getType();
if (t == java.awt.Color.class) {
Color defined = (Color) f.get(null);
if (defined.equals(colorParam)) {
System.out.println(colorName);
return colorName.toUpperCase();
}
}
}
} catch (Exception e) {
System.out.println("Error... " + e.toString());
}
return "NO_MATCH";
}
并在主
Color colr = new Color(1.0f, 0.0f, 0.0f);
Main m = new Main();
m.getNameReflection(colr);
}
你必须知道:"java.awt.Color"
定义了这种颜色:
white
WHITE
lightGray
LIGHT_GRAY
gray
GRAY
darkGray
DARK_GRAY
black
BLACK
red
RED
pink
PINK
orange
ORANGE
yellow
YELLOW
green
GREEN
magenta
MAGENTA
cyan
CYAN
blue
BLUE