我想压缩BufferedImage
而不向磁盘写入任何内容,因为图像代表视频源中的帧,因此写入磁盘显然会太慢。
我查看了ImageIO.write(image, "png", OutputStream)
,但我无法想到使用OutputStream
来阻止将生成的压缩图像写入磁盘。
答案 0 :(得分:2)
您可以使用ByteArrayOutputStream
将字节写入字节数组:
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(image, "png", out);
byte[] bytes = out.toByteArray();
完成上述操作后,bytes
将保留图片中包含的数据。
注意: ByteArrayOutputStream是OutputStream
的特殊输入类型,您不需要关闭它,但如果您仍然这样做,它永远不会受到伤害。