将RGB值转换为颜色

时间:2013-11-25 13:12:10

标签: java colors rgb

我有一个返回十进制值的java代码,如下所示

 [1.0, 0.0, 0.0] for Red  
 [0.0, 1.0, 0.0] for Green 

第一个值表示红色的颜色代码,第二个值表示绿色的颜色代码,第三个值表示蓝色的颜色代码。

我们有什么办法可以将这些RGB值转换成java中的相应颜色吗?

1 个答案:

答案 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