作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 FSE 模式下使用带有摆动的 Java。我想将一个完全黑白的图像加载为二进制格式(最好是二维数组),并将其用于基于掩码的每像素碰撞检测。我什至不知道从哪里开始,过去一个小时我一直在研究,但没有找到任何相关的东西。
最佳答案
只需将其读入 BufferedImage
使用 ImageIO#read()
并通过 BufferedImage#getRGB()
获取单个像素. 0xFFFFFFFF
的值是白色的,残余的是颜色。假设您想将白色表示为字节 0
和颜色(黑色)作为字节 1
,这是一个启动示例:
BufferedImage image = ImageIO.read(new File("/some.jpg"));
byte[][] pixels = new byte[image.getWidth()][];
for (int x = 0; x < image.getWidth(); x++) {
pixels[x] = new byte[image.getHeight()];
for (int y = 0; y < image.getHeight(); y++) {
pixels[x][y] = (byte) (image.getRGB(x, y) == 0xFFFFFFFF ? 0 : 1);
}
}
关于Java-如何将黑白图像加载为二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5925426/
我是一名优秀的程序员,十分优秀!