BufferedImage bufferedImage = BinaryEncoderUtil.render( chart );
Iterator writers = ImageIO.getImageWritersByFormatName( JPEG );
ImageWriter imageWriter = (ImageWriter) writers.next();
JPEGImageWriteParam params = new JPEGImageWriteParam( null );
params.setCompressionMode( ImageWriteParam.MODE_EXPLICIT );
params.setCompressionQuality( quality );
params.setProgressiveMode( com.google.code.appengine.imageio.ImageWriteParam.MODE_DISABLED );
params.setDestinationType( new ImageTypeSpecifier( IndexColorModel.getRGBdefault(),
IndexColorModel.getRGBdefault().createCompatibleSampleModel( 16, 16 ) ) );
ImageOutputStream imageOutputStream = ImageIO.createImageOutputStream( outputStream );
imageWriter.setOutput( imageOutputStream );
imageWriter.write( null, new IIOImage( bufferedImage, null, null ), params );