TYPE_INT_RGB和TYPE_INT_ARGB的格式


问题内容

谁能为我解释一下java如何将颜色存储在TYPE_INT_RGB和TYPE_INT_ARGB中?
这些代码行是否正确地用于计算红色,绿色和蓝色?

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

那TYPE_INT_ARGB呢?如何从TYPE_INT_ARGB获得红色,绿色和蓝色?


问题答案:

TYPE_INT_ARGB代表颜色为int(4个字节)用的24-31位,红色通道alpha通道在16-23,绿色在8-15和蓝色在0-7。

以相同的方式将TYPE_INT_RGBColor表示为int(4个字节)int的int
TYPE_INT_ARGB,但将忽略Alpha通道(或24-31位为0)。

查看java.awt.Colorjava.awt.image.BufferedImage的javadoc