Skip to content

Instantly share code, notes, and snippets.

@Computeiful
Created July 1, 2020 20:46
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Computeiful/0cef6ebd341c69df997e38e4a391cc21 to your computer and use it in GitHub Desktop.
Save Computeiful/0cef6ebd341c69df997e38e4a391cc21 to your computer and use it in GitHub Desktop.
Compress a BufferedImage to JPEG in memory
public static BufferedImage comp(BufferedImage image, float comp) throws IOException {
ImageWriter jpgWriter = ImageIO.getImageWritersByFormatName("jpg").next();
ImageWriteParam jpgWriteParam = jpgWriter.getDefaultWriteParam();
jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
jpgWriteParam.setCompressionQuality(comp);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageOutputStream stream = ImageIO.createImageOutputStream(outputStream);
jpgWriter.setOutput(stream);
jpgWriter.write(null, new IIOImage(image, null, null), jpgWriteParam);
byte[] bytes = outputStream.toByteArray();
stream.close();
return ImageIO.read(new ByteArrayInputStream(bytes));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment