【问题标题】:Converting RGB values into color将 RGB 值转换为颜色
【发布时间】:2013-12-10 05:36:33
【问题描述】:

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

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

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

有什么方法可以将这些 RGB 值转换为 java 中的相应颜色?

【问题讨论】:

标签: java colors rgb


【解决方案1】:

有一个example 来返回颜色名称,它依赖于使用反射来获取颜色名称(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

【讨论】:

  • @MaheshVarma 我现在实际上是在我的电脑上做这个答案.. 巧合
  • 很高兴知道,有一个人正在同一时间、同一地理位置处理相同的需求。 @BharathRallapalli
猜你喜欢
  • 1970-01-01
  • 2019-02-08
  • 2013-06-15
  • 2011-05-05
  • 2011-01-26
  • 2011-01-04
  • 2019-07-06
  • 1970-01-01
  • 2017-09-11
相关资源
最近更新 更多