2010-08-22 23 views
8

tôi có mã này đơn giản để đi qua một cửa sổ 24bit màu bmp tập tinjava đệm hình ảnh: Phát hiện điểm ảnh đen

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

Tuy nhiên, khi thử nghiệm trên một hình ảnh hoàn toàn màu đen, tôi nhận được giá trị này ở điểm ảnh: -16777216.

Tôi đã hy vọng nhận được 0x0.

Làm cách nào để kiểm tra các pixel đen (hoặc bất kỳ màu nào khác vì lý do đó)?

cập nhật

Im thử nghiệm với ((pixel & 0xff) == 0). Thê nay đung không? Cảm ơn trước.

Trả lời

10

-167772160xFF000000 trong hệ thập lục phân, tương ứng với màu đen đục.

Phụ lục: Nhìn vào bản cập nhật của bạn, tôi nghĩ bạn muốn ((pixel & 0x00FFFFFF) == 0) làm vị từ của bạn.

+0

Cảm ơn bạn rất nhiều. – Tom