【发布时间】:2016-10-09 09:17:30
【问题描述】:
我已经看到several examples 通过写入文件从 Java BufferedImage 对象制作压缩的 JPG 图像,但是是否可以在不写入文件的情况下执行 JPG 压缩?也许通过写信给ByteArrayOutputStream,比如this?
ImageWriter jpgWriter = ImageIO.getImageWritersByFormatName("jpg").next();
ImageWriteParam jpgWriteParam = jpgWriter.getDefaultWriteParam();
jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
jpgWriteParam.setCompressionQuality(0.7f);
ImageOutputStream outputStream = createOutputStream();
jpgWriter.setOutput(outputStream);
IIOImage outputImage = new IIOImage(image, null, null);
// in this example, the JPG is written to file...
// jpgWriter.write(null, outputImage, jpgWriteParam);
// jpgWriter.dispose();
// ...but I want to compress without saving, such as
ByteArrayOutputStream compressed = ???
【问题讨论】:
标签: java image jpeg bufferedimage