我从getRGB(x,y)
得到了整数像素,但是我不知道如何将其转换为RGBA格式。例如,-16726016
应该是Color(0,200,0,255)
。有什么建议吗?
如果我猜得没错,你得到的是一个形式为0xAARRGGBB
的无符号整数,所以
int b = (argb)&0xFF;
int g = (argb>>8)&0xFF;
int r = (argb>>16)&0xFF;
int a = (argb>>24)&0xFF;
可以提取颜色组件。然而,快速查看文档表明您只需执行以下操作即可
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;
第一段代码也进行了更新
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
你是指这个意思吗?