我使用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值的信息。
通过将整型转换为十六进制,然后使用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();`
可以通过传输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)
来代替。