【发布时间】:2010-11-27 06:58:48
【问题描述】:
我有 color= #12FFFF 。那是这种格式的颜色,其中 12FFFF 是十六进制数字。现在我想以十进制获取每个独立的 R、G、B 组件。 我在java中是如何做到的?
【问题讨论】:
我有 color= #12FFFF 。那是这种格式的颜色,其中 12FFFF 是十六进制数字。现在我想以十进制获取每个独立的 R、G、B 组件。 我在java中是如何做到的?
【问题讨论】:
不清楚你的问题是什么,但假设颜色是一个字符串,那么我认为你可以这样做:
String color = "#12FFFF";
int rgb = Integer.decode(color);
Color c = new Color(rgb);
int red = c.getRed();
int green = c.getGreen();
int blue = c.getBlue();
这是Color的文档
【讨论】:
使用位操作 - 移位和掩码:
int rgb = 0x123456;
int red = (rgb >>> 16) & 0xff;
int green = (rgb >>> 8) & 0xff;
int blue = (rgb >>> 0) & 0xff;
(显然,右移 0 是无关紧要的,但它非常一致。)
如果您还没有整数形式的 RGB 值,请在您的问题中提供更多详细信息。
【讨论】:
int rgb = 0x123456;
Color c = new Color(rgb);
int red = c.getRed();
int blue = c.getBlue();
int green = c.getGreen();
如果十六进制在字符串中,您需要先创建一个 Long 并使用 intValue() 来构造颜色。
【讨论】: