从 RGB 数据的 int 数组创建 PNG 文件

Has*_*ouj 5 java image

我正在从 png 图像中获取 int 数组,如何将其转换为 bufferdimage 或创建新的 PNG 文件?

int[] pixel = new int[w1*h1];
        int i = 0;
        for (int xx = 0; xx < h1; xx++) {
            for (int yy = 0; yy < w1; yy++) {
                        pixel[i] = img.getRGB(yy, xx);
                        i++;
                }
         }
Run Code Online (Sandbox Code Playgroud)

MxL*_*evs 0

尝试使用ImageIO类,它可以采用表示像素数据的字节数组来构建图像对象,然后以特定格式将其写出。

try {
    BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(yourBytes));
    ImageIO.write(bufferedImage, "png", new File("out.png"));
} catch (IOException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)