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)
作为你的谓词。