the*_*ers 6 java int rgb negative-number
好的,我正在研究一个接收图像的程序,将一个像素块隔离成一个数组,然后为该数组中的每个像素获取每个单独的rgb值.
当我这样做
//first pic of image
//just a test
int pix = myImage.getRGB(0,0)
System.out.println(pix);
Run Code Online (Sandbox Code Playgroud)
它吐了出来-16106634
我需要从这个int值中得到(R,G,B)值
有公式,alg,方法吗?
Whi*_*g34 11
该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;
Run Code Online (Sandbox Code Playgroud)
如果你碰巧想要alpha组件:
int a = (pix >> 24) & 0xFF;
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用Color(int rgba, boolean hasalpha)构造函数以方便(以性能为代价).