Java颜色转换

时间:2015-10-14 22:09:48

标签: java colors type-conversion

使用com.esri.arcgis.display.IColor中的方法时遇到问题。方法为IColor.getRGB(),返回int

IColor symbolColor = symbol.getColor();
int colorInt = symbolColor.getRGB();
//TODO: get RGB values from colorInt

来自documentation

  

RGB返回根据红色,绿色和蓝色属性计算的长(ASCII)数字。

我需要以某种方式从此int获取单个RGB值(标准0-255),但我几乎找不到有关从ASCII数字转换为RGB值的任何信息。

2 个答案:

答案 0 :(得分:0)

通过将int转换为十六进制来解决,然后使用Color.decode()解码十六进制字符串以获得Color。使用Color实例,我们可以获取各个RGB值。

IColor symbolColor = symbol.getColor();
int colorInt = symbolColor.getRGB();
String hexColor = Integer.toHexString(colorInt);
Color color = Color.decode("#"+hexColor);
int red = color.getRed();
int blue = color.getBlue();
int green = color.getGreen();
int alpha = color.getAlpha();`

答案 1 :(得分:0)

可以通过传输RGB整数来转换这些值。

int rgb = symbol.getColor().getRGB();
Color color = new Color(rgb);
int red = color.getRed();
int blue = color.getBlue();
int green = color.getGreen();
int alpha = color.getAlpha();

您可能需要进一步调查rgb变量是否也包含alpha值,在这种情况下,您要使用new Color(rgb, true)代替。