java - 压缩 BufferedImage 而不写入磁盘

标签 java image compression bufferedimage javax.imageio

我想压缩 BufferedImage 而不向磁盘写入任何内容,因为图像代表视频源中的帧,因此写入磁盘显然太慢。

我查看了 ImageIO.write(image, "png", OutputStream) 但我想不出使用什么 OutputStream 来防止写入生成的压缩图像到磁盘。

最佳答案

您可以使用 ByteArrayOutputStream将字节写入字节数组:

ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(image, "png", out);
byte[] bytes = out.toByteArray();

完成上述操作后,bytes 将保存图像包含的数据。

注意:ByteArrayOutputStream是一种特殊的输入类型OutputStream,你不需要关闭它,但如果你仍然关闭它也没什么坏处。

关于java - 压缩 BufferedImage 而不写入磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35149243/

相关文章:

java - 获取拦截器中 View 发送的特定参数

java - 如何在这段代码中输入文件?

css - 具有多种背景选择的响应图像

java - ExceptionMapper 实体似乎被 Quarkus 包裹

java - 如何限制 CDI 认为是托管 bean?

android - Bitmap.Options.inSampleSize 应该如何工作?

image - 通过文档文字 SOAP 在 base64 中发送图像的替代方法

java - C++和Java之间如何压缩和解压?

python - zlib.错误 : Error -5 while decompressing data: incomplete or truncated stream in Python

xml - 如何将 WordprocessingML 文件夹压缩成可读的 docx