按颜色获得R,G,B的值

时间:2012-07-31 08:40:12

标签: java colors rgb

我有用户输入颜色(例如白色,红色......),那么我怎样才能获得用户给出的颜色R,G,B的值?

我有一个函数(float r,float g,float b)来设置节点的颜色。所以我让用户输入他们想要的颜色名称,然后我想转换该颜色名称以获得我的函数的r,g,b值。

3 个答案:

答案 0 :(得分:3)

颜色定义了表示基本颜色的有限枚举数。 This code excerpt使用反射从其名称映射到RGB表示。

除此之外,您必须维护颜色/ RGB值的映射,或者可能需要一组系统属性,并使用Color.getColor(String name)

答案 1 :(得分:1)

创建一个Map,其中包含所有可选颜色作为字符串及其RGB表示(对于记录,Color在java.awt包中找到):

Map<String,Color> colorMap = new HashMap<String,Color>();
        colorMap.put("white", new Color(255,255,255));
        colorMap.put("red", new Color(255,0,0));

然后使用用户输入的文本在地图中查找您的颜色:

String userColor = <whereever you get your string from>;
Color result = colorMap.get(userColor.toLowerCase());

最后,使用这个具有RGB int值的Color对象来检索您需要的浮点值并将它们传递给您的函数:

yourFunction(Float.valueOf(result.getRed(),Float.valueOf(result.getGreen()),Float.valueOf(result.getBlue()));

如果可能的话,我建议使用整数而不是浮点数作为RGB,因为在大多数情况下,它的整数范围为0到255.

这个网站提供了用RGB获得所有颜色的好地方:http://cloford.com/resources/colours/500col.htm

答案 2 :(得分:0)

如果您将颜色作为字符串,则在地图中查找此Color,这将为您提供红色,绿色和蓝色值。