Java缓冲图像:检测黑色像素

8
我有这样一个简单的代码,可以浏览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个回答

10

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

补充说明:根据您的更新,我认为您想要((pixel & 0x00FFFFFF) == 0)作为您的谓词。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接