我有这个简单的代码来浏览 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。
如何测试黑色像素(或因此原因的任何其他颜色)?
update
我正在测试((pixel & 0xff) == 0)
。这是正确的吗?
提前致谢。
-16777216
is 0xFF000000
十六进制,对应于不透明黑色。
附录:看看你的更新,我想你想要((pixel & 0x00FFFFFF) == 0)
作为你的谓词。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)