从BufferedImage获取像素数据

时间:2013-10-27 21:23:15

标签: java image bufferedimage

我需要从BufferedImage获取像素数据,以便我可以从数据中重新创建图像。我调查了Raster,但这似乎并不包含我需要的信息。如何从BufferedImage获取数据,以便我可以在不需要原始文件的情况下重新创建图像?

1 个答案:

答案 0 :(得分:0)

您应该查看此问题的答案

Java - get pixel array from image

一种方法是使用

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(originalImage, "jpg", baos);
baos.flush();
byte[] imageBytes = baos.toByteArray();
baos.close();

现在,当您要根据使用的数据创建新的BufferedImage

ByteArrayInputStream bais = new ByteArrayInputStream(imageBytes);
BufferedImage newImage = null;
try {
    newImage = ImageIO.read(bais);
} catch (IOException e) {
    // handle exception
}