java - 从 BufferedImage 获取像素数据

标签 java image bufferedimage

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

最佳答案

你应该看看这个问题的答案

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
}

关于java - 从 BufferedImage 获取像素数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19623754/

相关文章:

java - 将RGB的int[][]保存为图像文件

java - 如何从包含像素的数组创建 BufferedImage?

java - Java 中的垃圾收集器会自动工作吗?

java - 关于字符串连接行为

json - SWIFT 从 JSON 解析图像

css - 链接背景图像

java - 为什么 BufferedImage 不能正常工作?!!是因为我用错了吗?

java - 字符串检查 while 循环无法正常工作

java - 在嵌套静态类中使用静态方法处理后重建 JFrame

html - 我如何强制缩小的 svg 图像彼此相邻排列而不是换行/被推到下一行?