在不写入磁盘的情况下压缩 BufferedImage
Compressing a BufferedImage without writing to disk
我想压缩 BufferedImage
而不向磁盘写入任何内容,因为图像代表来自视频源的帧,因此写入磁盘显然太慢了。
我查看了 ImageIO.write(image, "png", OutputStream)
但我想不出 OutputStream
使用什么来防止将生成的压缩图像写入磁盘。
您可以使用 ByteArrayOutputStream
将字节写入字节数组:
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(image, "png", out);
byte[] bytes = out.toByteArray();
完成上述操作后,bytes
将保存图像包含的数据。
注意: ByteArrayOutputStream 是一种特殊的输入类型OutputStream
,你不需要关闭它,但如果你仍然关闭它也无妨。
我想压缩 BufferedImage
而不向磁盘写入任何内容,因为图像代表来自视频源的帧,因此写入磁盘显然太慢了。
我查看了 ImageIO.write(image, "png", OutputStream)
但我想不出 OutputStream
使用什么来防止将生成的压缩图像写入磁盘。
您可以使用 ByteArrayOutputStream
将字节写入字节数组:
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(image, "png", out);
byte[] bytes = out.toByteArray();
完成上述操作后,bytes
将保存图像包含的数据。
注意: ByteArrayOutputStream 是一种特殊的输入类型OutputStream
,你不需要关闭它,但如果你仍然关闭它也无妨。