Java颜色转换



我使用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)来代替。

最新更新