TYPE_INT_RGB和TYPE_INT_ARGB的格式

Pro*_*sam 17 java rgb colors argb

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

int red= (RGB>>16)&255;
int green= (RGB>>8)&255;
int blue= (RGB)&255;
Run Code Online (Sandbox Code Playgroud)

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

Alb*_*rto 27

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

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

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


Fal*_*eon 11

你对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;
Run Code Online (Sandbox Code Playgroud)

拼写出从最重要到最不重要的字节的颜色元素,你得到ARGB,因此得名.