我有用户输入颜色(例如白色,红色......),那么我怎样才能获得用户给出的颜色R,G,B的值?
我有一个函数(float r,float g,float b)来设置节点的颜色。所以我让用户输入他们想要的颜色名称,然后我想转换该颜色名称以获得我的函数的r,g,b值。
答案 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
,这将为您提供红色,绿色和蓝色值。