问题描述
我有点困惑究竟什么值将存储在变量 a 中。请有人用例子解释我
提前致谢。
解决方法
正如 BufferedImage.getRGB() 文档所说:
返回默认 RGB 颜色模型 (TYPE_INT_ARGB) 和默认 sRGB 颜色空间中的整数像素。如果此默认模型与图像 ColorModel 不匹配,则会发生颜色转换。使用这种方法返回的数据中每个颜色分量只有8位精度。
要将这个整数划分为 R、G、B 值,您可以使用按位运算:
BufferedImage bufferedImage = new BufferedImage(10,10,10);
int a = bufferedImage.getRGB(0,0);
int red = (a >> 16) & 255;
int green = (a >> 8) & 255;
int blue = (a) & 255;
System.out.println(a + " r:" + red + ",g:" + green + ",b:" + blue);