RGB int 颜色在其位中包含颜色的红、绿、蓝分量。您必须查看其二进制或十六进制表示,而不是将其视为整数(而不是查看其十进制表示)。
int 有 32 位,3x8 = 24 用于存储 RGB 分量(每个 8 位),格式如下:
2 1 0
bitpos 32109876 54321098 76543210
------ --+--------+--------+--------+
bits ..|RRRRRRRR|GGGGGGGG|BBBBBBBB|
您可以使用位掩码提取或设置组件:
int color = img.getRGB(x, y);
// Components will be in the range of 0..255:
int blue = color & 0xff;
int green = (color & 0xff00) >> 8;
int red = (color & 0xff0000) >> 16;
如果颜色还具有 alpha 分量(透明度)ARGB,则获取最后剩余的 8 位。
3 2 1 0
bitpos 10987654 32109876 54321098 76543210
------ +--------+--------+--------+--------+
bits |AAAAAAAA|RRRRRRRR|GGGGGGGG|BBBBBBBB|
以及价值:
int alpha = (color & 0xff000000) >>> 24; // Note the >>> shift
// required due to sign bit
alpha 值为 255 表示颜色完全不透明,值为 0 表示颜色完全透明。
你的颜色:
你的颜色是color = -16755216,它有:
blue : 240 // Strong blue
green: 85 // A little green mixed in
red : 0 // No red component at all
alpha: 255 // Completely opaque