如何在Java中将getRGB(x,y)整数像素转换为Color(r,g,b,a)?

2022-09-01 10:18:32

我有我从中得到的整数像素,但我对如何将其转换为RGBA格式没有任何线索。例如,应为 。有什么提示吗?getRGB(x,y)-16726016Color(0,200,0,255)


答案 1

如果我猜对了,你得到的是一个无符号整数的形式,所以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;

在第一段代码中也更新了


答案 2
    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

这是你的意思吗?


推荐