2010-08-22 13 views
8

Je possède ce code simple de passer par une fenêtre de couleur de 24bit bmpjava tamponnées Image: Détection des pixels noirs

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); 
    } 
    } 
} 

Cependant, lors du test sur une image complètement noire, je reçois cette valeur au pixel: -16777216.

J'espérais obtenir un 0x0.

Comment puis-je tester les pixels noirs (ou toute autre couleur pour cette raison)?

mise à jour

de test Im contre ((pixel & 0xff) == 0). Est-ce correct? Merci d'avance.

Répondre

10

-16777216 est 0xFF000000 en hexadécimal, correspondant à du noir opaque.

Addendum: En regardant votre mise à jour, je pense que vous voulez ((pixel & 0x00FFFFFF) == 0) comme prédicat.

+0

Merci beaucoup. – Tom