8

私は24ビットカラーウィンドウの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を取得したいと思っていました。

黒のピクセル(またはその理由で他の色)をテストするにはどうすればよいですか?

アップデート

に対するImテスト((pixel & 0xff) == 0)。これは正しいですか?前もって感謝します。

4

1 に答える 1

10

-167772160xFF00000016進数で、不透明な黒に対応します。

((pixel & 0x00FFFFFF) == 0)補遺:あなたの更新を見ると、あなたはあなたの述語として欲しいと思います。

于 2010-08-22T01:04:02.063 に答える