java Buffered Image:检测黑色像素

时间:2010-08-22 00:58:53

标签: java rgb bufferedimage bmp

我有这个简单的代码来通过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)进行测试。这是正确的吗? 提前谢谢。

1 个答案:

答案 0 :(得分:10)

-16777216为十六进制的0xFF000000,对应于不透明的黑色。

附录:查看您的更新,我认为您希望((pixel & 0x00FFFFFF) == 0)作为您的谓词。

相关问题