使用com.esri.arcgis.display.IColor
中的方法时遇到问题。方法为IColor.getRGB()
,返回int
。
IColor symbolColor = symbol.getColor();
int colorInt = symbolColor.getRGB();
//TODO: get RGB values from colorInt
RGB返回根据红色,绿色和蓝色属性计算的长(ASCII)数字。
我需要以某种方式从此int获取单个RGB值(标准0-255),但我几乎找不到有关从ASCII数字转换为RGB值的任何信息。
答案 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)
代替。