如何从java中的十六进制颜色代码中获取RGB值

2022-09-02 22:48:32

我有一个十进制颜色代码(例如:)。我正在将其转换为十六进制等效的.如何从十六进制颜色代码中获取红色,绿色和蓝色成分值?48989014ac055


答案 1

假设这是一个字符串:

// edited to support big numbers bigger than 0x80000000
int color = (int)Long.parseLong(myColorString, 16);
int r = (color >> 16) & 0xFF;
int g = (color >> 8) & 0xFF;
int b = (color >> 0) & 0xFF;

答案 2

如果你有一个字符串,这种方式会更好:

Color color =  Color.decode("0xFF0000");
int red = color.getRed();
int blue = color.getBlue();
int green = color.getGreen();

如果你有一个数字,那么这样做:

Color color = new Color(0xFF0000);

然后,当然要获得您刚刚做的颜色:

float red = color.getRed();
float green = color.getGreen();
float blue = color.getBlue();