Java 将十六进制字符串处理为彩色

Java 将十六进制字符串处理为彩色,java,colors,hex,processing,Java,Colors,Hex,Processing,我正在从JSON文件中读取十六进制颜色,但需要将它们作为int获取,以便创建颜色 int col=Integer.parseInt("FF0000",16); 返回16711680 返回16711680 我该怎么做?你把两件事混为一谈了: 事情一:像FF0000这样的十六进制值代表整数值 事情二:在内部,处理将颜色值表示为整数 第一个概念中的整数与第二个概念中的整数不同 事实上,十六进制颜色值是处理编辑器处理过程中的一个特例,它为您带来了一些魔力。我不知道如何直接从字符串值转换为十六进制颜色

我正在从JSON文件中读取十六进制颜色,但需要将它们作为int获取,以便创建颜色

int col=Integer.parseInt("FF0000",16); 
返回16711680

返回16711680


我该怎么做?

你把两件事混为一谈了:

事情一:像FF0000这样的十六进制值代表整数值

事情二:在内部,处理将颜色值表示为整数

第一个概念中的整数与第二个概念中的整数不同

事实上,十六进制颜色值是处理编辑器处理过程中的一个特例,它为您带来了一些魔力。我不知道如何直接从字符串值转换为十六进制颜色值

相反,您应该将字符串值解析为其各个组件,将它们转换为整数,然后使用三参数颜色函数创建颜色

int col=Integer.parseInt("FF0000",16); 

有关更多信息,请参见此问题:

如果要重新发明控制盘,可以将字符串解析为RGB十六进制值FF、00和00,将十六进制值转换为分别对应于0-255的int值的整数255、0和0,然后使用这些RGB值创建颜色对象

但就我个人而言,我只会使用:

Color red = Color.decode("#FF0000"); //That's definitely red

我所做的只是重新创建了如下颜色:

int c = Integer.parseInt(obj.getString("color"), 16);
c = color(red(c), green(c), blue(c));

您可以尝试使用以下方法-

Color c = Color.parseColor("#c0c0c0");

我该怎么做?做什么?使用可用的构造函数将十六进制字符串转换为可用颜色或该颜色值的int?很明显你想做的很好。请注意标签。处理是它自己的语言,您不应该在处理中使用Java的AWT颜色类型。推荐阅读:考虑到java标记,很容易犯错误。我没有说其他。