我有getRGB(x,y)
得到的整数像素,但我对如何将其转换为RGBA没有任何线索。例如,-16726016应为Color(0,200,0,255)
。有什么提示吗?
答案 0 :(得分:43)
如果我猜对了,你得到的是0xAARRGGBB
形式的无符号整数,所以
int b = (argb)&0xFF;
int g = (argb>>8)&0xFF;
int r = (argb>>16)&0xFF;
int a = (argb>>24)&0xFF;
将提取颜色成分。但是,快速查看docs表示您可以执行
Color c = new Color(argb);
或
Color c = new Color(argb, true);
如果你想在Color中使用alpha组件。
<强>更新强>
红色和蓝色组件在原始答案中被反转,因此正确的答案将是:
int r = (argb>>16)&0xFF;
int g = (argb>>8)&0xFF;
int b = (argb>>0)&0xFF;
也在第一段代码中更新了
答案 1 :(得分:24)
Color c = new Color(-16726016, true);
System.out.println(c.getRed());
System.out.println(c.getGreen());
System.out.println(c.getBlue());
System.out.println(c.getAlpha());
打印出来:
0
200
0
255
这是你的意思吗?