好的,所以我正在开发一个程序,该程序接收图像,将像素块隔离到一个数组中,然后获取该数组中每个像素的每个单独的 rgb 值。
当我这样做时
//first pic of image
//just a test
int pix = myImage.getRGB(0,0)
System.out.println(pix);
它吐出-16106634
我需要从这个 int 值中获取 (R, G, B) 值
有公式,alg,方法吗?
好的,所以我正在开发一个程序,该程序接收图像,将像素块隔离到一个数组中,然后获取该数组中每个像素的每个单独的 rgb 值。
当我这样做时
//first pic of image
//just a test
int pix = myImage.getRGB(0,0)
System.out.println(pix);
它吐出-16106634
我需要从这个 int 值中获取 (R, G, B) 值
有公式,alg,方法吗?
该方法总是返回颜色模型BufferedImage.getRGB(int x, int y)
中的一个像素。TYPE_INT_ARGB
因此,您只需要为每种颜色隔离正确的位,如下所示:
int pix = myImage.getRGB(0, 0);
int r = (pix >> 16) & 0xFF;
int g = (pix >> 8) & 0xFF;
int b = pix & 0xFF;
如果您碰巧想要 alpha 组件:
int a = (pix >> 24) & 0xFF;
或者,为了方便起见,您可以使用Color(int rgba, boolean hasalpha)
构造函数(以性能为代价)。
int pix = myImage.getRGB(0,0);
Color c = new Color(pix,true); // true for hasalpha
int red = c.getRed();
int green = c.getGreen();
int blue = c.getBlue();