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
将Color表示为int
(4字节),其中alpha通道位为24-31,红色通道位于16-23,绿色位于8-15,蓝色表示0-7。
TYPE_INT_RGB
以与TYPE_INT_ARGB
相同的方式将Color表示为int
(4字节)int,但忽略alpha通道(或位24-31为0)。
查看java.awt.Color和java.awt.image.BufferedImage的javadoc。
你对TYPE_INT_RGB是正确的。 等效的TYPE_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,因此得名。
这些是常量值,表示BufferedImage
实例的颜色模型。 这些值本身不存储颜色。