Я видел several examples создания сжатых изображений JPG из Java BufferedImage
объектов путем записи в файл, но возможно ли выполнить сжатие JPG без записи в файл? Возможно, написав ByteArrayOutputStream
, как this?Java BufferedImage JPG сжатие без записи в файл
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 = ???
это 33 upvotes, что вам еще нужно ?? – gpasch
@gpasch, я могу ошибаться, но я не думаю, что любой из вопросов, которые я связывал, чтобы делать то, что я хочу. – JeffThompson