我有这个简单的代码来通过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);
}
}
}但是,在测试全黑图像时,我得到的值是pixel:-16777216。
我希望得到0x0分。
如何测试黑色像素(或任何其他颜色)?
更新
我正在对((pixel & 0xff) == 0)进行测试。是这样的吗?提前谢谢。
发布于 2010-08-22 09:04:02
-16777216是十六进制的0xFF000000,对应于不透明的黑色。
附录:看看你的更新,我认为你想要((pixel & 0x00FFFFFF) == 0)作为你的谓词。
https://stackoverflow.com/questions/3539670
复制相似问题