Java-如何将黑白图像加载到二进制中?

标签 java arrays image binary load

我在 FSE 模式下使用 Java 和 swing。我想将完全黑白图像加载为二进制格式(最好是二维数组),并将其用于基于掩码的每像素碰撞检测。我什至不知道从哪里开始,过去一个小时我一直在研究,但没有找到任何相关的东西。

最佳答案

只需将其读入 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/

相关文章:

Java slick2d 每 x 秒移动一个对象

java - 集合中的内存消耗

java - 无法从 STRING 单元格获取 NUMERIC 值

.net - 在 GDI+ 中绘制具有自定义透明度的图像

java - 使用java通过定时器交替图像

Java 字符无法正确识别

java - 使用 BufferedReader 读取数组?

PHP if in_array() 如何获取 key ?

python - 动态追加N维数组

html - 自定义光标不起作用?