Java 类型_INT_RGB和类型_INT_ARGB的格式

Java 类型_INT_RGB和类型_INT_ARGB的格式,java,colors,rgb,argb,Java,Colors,Rgb,Argb,有人能给我解释一下java是如何将颜色存储在类型_INT_RGB和类型_INT_ARGB中的吗? 这些代码行在计算红色、绿色和蓝色时是否正常工作 int red= (RGB>>16)&255; int green= (RGB>>8)&255; int blue= (RGB)&255; 那么类型为INT的ARGB呢?如何从类型_INT_ARGB中获取红色、绿色和蓝色?类型_INT_ARGB将颜色表示为INT(4字节),alpha通道位为24-31,

有人能给我解释一下java是如何将颜色存储在类型_INT_RGB和类型_INT_ARGB中的吗?
这些代码行在计算红色、绿色和蓝色时是否正常工作

int red= (RGB>>16)&255;
int green= (RGB>>8)&255;
int blue= (RGB)&255;

那么类型为INT的ARGB呢?如何从类型_INT_ARGB中获取红色、绿色和蓝色?

类型_INT_ARGB将颜色表示为
INT
(4字节),alpha通道位为24-31,红色通道位为16-23,绿色通道位为8-15,蓝色通道位为0-7

TYPE\u INT\u RGB
表示颜色为
INT
(4字节)INT,与
TYPE\u INT\u ARGB
相同,但忽略alpha通道(或位24-31为0)


查看和的javadoc。

这些是常量值,指示
buffereImage
实例的颜色模型。这些值本身并不存储颜色。

您的输入是正确的。等效类型_INT_ARGB代码为:

int rgb = rgbColor.getRGB(); //always returns TYPE_INT_ARGB
int alpha = (rgb >> 24) & 0xFF;
int red =   (rgb >> 16) & 0xFF;
int green = (rgb >>  8) & 0xFF;
int blue =  (rgb      ) & 0xFF;

将字节的颜色元素从最高有效到最低有效拼写出来,就得到了ARGB,这就是它的名字。

我以前不知道这些东西:-)很高兴知道有人为你搜索过:-)为了更好的代码,255可能是
0xff
0b1111\u 1111