java Buffered Image:检测黑色像素

我有这个简单的代码来通过24位彩色windows bmp文件

BufferedImage mapa = BMPDecoder.read(new File("maps/map.bmp")); final int xmin = mapa.getMinX(); final int ymin = mapa.getMinY(); final int ymax = ymin + mapa.getHeight(); final int xmax = xmin + mapa.getWidth(); for (int i = xmin;i<xmax;i++) { for (int j = ymin;j<ymax;j++) { int pixel = mapa.getRGB(i, j); if (pixel == 0) { System.out.println("black at "+i+","+j); } } } 

但是,在完全黑色的图像上进行测试时,我会在像素处获得此值: -16777216

我希望得到一个0x0。

如何测试黑色像素(或任何其他颜色)?

更新

我测试((pixel & 0xff) == 0) 。 这是正确的吗? 提前致谢。

-16777216是hex的0xFF000000 ,对应于不透明的黑色。

附录:看看你的更新,我认为你想要((pixel & 0x00FFFFFF) == 0)作为你的谓词。