try {
// Instantiate an ImageWriteParam object with default compression options
Iterator<ImageWriter> it = ImageIO.getImageWritersByFormatName(format);
writer = (ImageWriter) it.next();
ImageWriteParam iwp = writer.getDefaultWriteParam();
// If compression is supported, then set the compression mode
if (iwp.canWriteCompressed()) {
// Use explicit compression mode
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
// Set compression quality, where 1 specifies minimum compression and maximum quality
iwp.setCompressionQuality(compressionQuality); // float between 0 and 1
}
// Write the screen shot to file
output = new FileImageOutputStream(file);
writer.setOutput(output);
IIOImage image = new IIOImage(screenshot, null, null);