如何在Java中将getRGB(x,y)整数像素转换为Color(r,g,b,a)?
我有我从中得到的整数像素,但我对如何将其转换为RGBA格式没有任何线索。例如,应为 。有什么提示吗?getRGB(x,y)
-16726016
Color(0,200,0,255)
我有我从中得到的整数像素,但我对如何将其转换为RGBA格式没有任何线索。例如,应为 。有什么提示吗?getRGB(x,y)
-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);
如果你也想要颜色中的阿尔法分量。
更新
红色和蓝色组件在原始答案中是颠倒的,所以正确的答案是:
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
这是你的意思吗?