java - 在Java中将二维数组转换为图像?

标签 java image bufferedimage

我有一个二维数组(只有 1 -0 个值),但它的类型是 int[][]。

现在我想将该数组转换为图像(黑白二进制图像)。但我找不到适合我的问题的答案。我搜索过谷歌和这个网站。谁能帮我吗?

我已经尝试过下面的代码,但是它

   String path = "C:\\Users\\Cyrus\\Desktop\\test.jpg";
    BufferedImage image = new BufferedImage(b.length, b[0].length, BufferedImage.TYPE_INT_RGB);
    for (int x = 0; x < b.length; x++) { // b is my 2D array
        for (int y = 0; y < b[x].length; y++) {
            image.setRGB(x, y, b[x][y]);
        }
    }

    File ImageFile = new File(path);
    try {
        ImageIO.write(image, "jpg", ImageFile);
    } catch (IOException e) {
        e.printStackTrace();
    }

//修改代码后

String path = "C:\\Users\\Cyrus\\Desktop\\test.jpg";
    BufferedImage image = new BufferedImage(a.length, a[0].length, BufferedImage.TYPE_INT_RGB);
    for (int x = 0; x < a.length; x++) {
        for (int y = 0; y < a[x].length; y++) {
             int value ;
             if(a[x][y]==1)  value = new Color(255,255,255).getRGB();
             else value = new Color(0,0,0).getRGB();
            image.setRGB(x, y, value);

        }
    }

    File ImageFile = new File(path);
    try {
        ImageIO.write(image, "jpg", ImageFile);
    } catch (IOException e) {
        e.printStackTrace();
    }

但它返回错误的图像

最佳答案

您能更具体地说明您得到的结果吗?它抛出了一些异常吗?或者程序正常完成但没有产生您想要的结果?

您应该注意到,这里您想要使用二进制图像,那么选择 JPG 有什么具体原因吗?据我所知,JPG 不是颜色三元组 RGB 的原生表示(例如 bmp)。 jpeg文件是一个数据序列的“容器”,其中它的头部有很多信息(EXIF,QT,...),用标记来标记。要像在数组中一样“直接”处理像素值,必须对 jpg 文件中的数据序列进行“解码”,然后在播放图像后,主图像数据将再次“编码”为 jpg 流。

要直接使用像素值,我建议您使用其他格式(例如 TGA、png...)

关于java - 在Java中将二维数组转换为图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23201348/

相关文章:

javascript - 对延迟图像应用淡入淡出效果

Node.js 每三次刷新就无法获取静态文件

java - 从 QBytearray 创建 QImage

java - 多个具有相同 log4j 的 weblogic 受管节点会导致文件锁定吗?

Java not a statement error at i < j

java - Cloudera MapReduce计数器getValue错误

java - 元数据异常 : The type "*.CustomerEntity" has not been enhanced - whentrying to create row with Spring-JPA and OpenJPA

image - 谷歌图片按图片搜索

java - 如何改变缓冲图像的亮度?

java - 在 JFrame 中手动定位图像