param.setOptimizeHuffmanTables(true); try { param.setProgressiveMode(JPEGImageWriteParam.MODE_DEFAULT);
// set JPG params JPEGImageWriteParam param = new JPEGImageWriteParam(Locale.getDefault()); param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); param.setCompressionQuality(1); param.setOptimizeHuffmanTables(true); // save the image with new comment inside IIOImage iioimage = new IIOImage(img, null, meta); writer.setOutput(ImageIO.createImageOutputStream(new File("some_modified.jpg"))); writer.write(null, iioimage, param);
protected ImageWriteParam prepareParameters( ImageWriter writer, String compression, boolean compressUsed, float compressionRate) { ImageWriteParam params = writer.getDefaultWriteParam(); params.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); if (compressUsed) { // Lossy compression. params.setCompressionType(compression); } if (compressionRate > -1) { // we can control quality here params.setCompressionQuality(compressionRate); } // If JPEGWriteParams, additional parameters are set if (params instanceof JPEGImageWriteParam) { final JPEGImageWriteParam jpegParams = (JPEGImageWriteParam) params; jpegParams.setOptimizeHuffmanTables(true); try { jpegParams.setProgressiveMode(JPEGImageWriteParam.MODE_DEFAULT); } catch (UnsupportedOperationException e) { // Logged Exception LOGGER.error(e.getMessage(), e); } params = jpegParams; } return params; } },
if (iwp instanceof JPEGImageWriteParam) { final JPEGImageWriteParam param = (JPEGImageWriteParam) iwp; param.setOptimizeHuffmanTables(true); try { param.setProgressiveMode(JPEGImageWriteParam.MODE_DEFAULT);
protected ImageOutputter getOutputter() { Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName(getOriginalFormatName()); if (writers.hasNext()) { ImageWriter writer = writers.next(); ImageWriteParam param = writer.getDefaultWriteParam(); if (getOriginalFormatName().equals("jpeg")) { param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); param.setCompressionQuality(config.getJpegCompression()); if (param instanceof JPEGImageWriteParam) { ((JPEGImageWriteParam) param).setOptimizeHuffmanTables( config.getJpegHuffmanOptimization()); } } JpegImageUtils.SamplingModes samplingMode = JpegImageUtils.SamplingModes.DEFAULT; if (config.getJpegRetainSubsampling() && sourceImageParams != null) { samplingMode = sourceImageParams.getSamplingMode(); } return new ImageIOOutputter(writer, param, samplingMode); } return new SanselanOutputter(FORMAT_NAME_TO_IMAGE_FORMAT.get(getOriginalFormatName())); }
param.setOptimizeHuffmanTables(true); try { param.setProgressiveMode(JPEGImageWriteParam.MODE_DEFAULT);