[英]Using Java, can I convert a human readable color name into an integer array?
使用Java,如何将人类可读的颜色名称转换为三元素整数数组?
例如,我有一种颜色,表示为:
int[] RGB_COLOR = {128,25,25};
而且我希望能够将静态值Color.BLUE
转换为与上面的相似的三元素整数数组。 这可能吗,还是我必须解决这个问题?
你是说这个意思吗
Color c = Color.BLUE;
int[] RGB = { c.getRed(), c.getGreen(), c.getBlue() };
要将颜色名称转换为颜色,可以使用反射,前提是它具有内置的颜色。 如果需要更多颜色,则需要使用地图。
public static Color colorOf(String color) {
try {
return (Color) Color.class.getDeclaredField(color).get(null);
} catch(Exception notAvailable) {
return null; // ??
}
}
只需使用Color
类的getGreen()
, getRed()
, getBlue()
方法
向下滚动您链接的文档
Color c = //...;
int[] color = {c.getRed(),c.getGreen(),c.getBlue()};
从String
获取Color
对象的最简单方法是创建Map<String, Color>
将有效的String
颜色名称映射到Color
对象。
Map<String, Color> map = new HashMap<String, Color>();
map.put("BLUE", Color.BLUE);
// etc.
Color color = map.get(someString);
另外,我建议不要将RGB值存储在int[3]
除非您确实需要这样做,因为某些第三方代码会期望它或类似的东西。 通常,仅使用Color
类更为合适。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.