如何在Java中将get.rgb(x,y)整数像素转换为Color(r,g,b,a)?
我有来自get.rgb(x,y)的整数像素,但我对如何将其转换为RGBA没有任何线索。 例如,-16726016应为Color(0,200,0,255)。 有小费吗?
如果我猜对了,你得到的是一个0xAARRGGBB
forms的无符号整数,所以
int r = (argb)&0xFF; int g = (argb>>8)&0xFF; int b = (argb>>16)&0xFF; int a = (argb>>24)&0xFF;
会提取颜色成分。 但是,快速浏览文档说你可以做到
Color c = new Color(argb);
要么
Color c = new Color(argb, true);
如果你想要Color中的alpha组件。
UPDATE
红色和蓝色组件在原始答案中颠倒,因此正确的答案将是:
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
你是这个意思吗?