if (quality > 0 && quality < 1) { imgWriteParams = writer.getDefaultWriteParam(); if (imgWriteParams.canWriteCompressed()) { imgWriteParams.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); imgWriteParams.setCompressionQuality(quality);
if (quality > 0 && quality < 1) { imgWriteParams = writer.getDefaultWriteParam(); if (imgWriteParams.canWriteCompressed()) { imgWriteParams.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); imgWriteParams.setCompressionQuality(quality);
if (writeParam.canWriteCompressed() && param != null)
if (writeParam.canWriteCompressed() && param != null)
public boolean canWriteCompressed() { return adaptee.canWriteCompressed(); }
if (writerParams != null) if (param.canWriteCompressed()) else if (param.canWriteCompressed())
if (writerParams != null) if (param.canWriteCompressed()) else if (param.canWriteCompressed())
if (param != null && param.canWriteCompressed())
if ((requestQuality != null || "jpeg".equalsIgnoreCase(getFormatNameSafe(writer))) && param.canWriteCompressed()) {
public boolean canWriteCompressed() { return adaptee.canWriteCompressed(); }
public boolean canWriteCompressed() { return adaptee.canWriteCompressed(); }
public boolean canWriteCompressed() { return adaptee.canWriteCompressed(); }
public boolean canWriteCompressed() { return adaptee.canWriteCompressed(); }
public static void listSupportedImageWriters(String format) { System.out.println(MessageFormat.format(rb.getString("writers"), format)); Iterator<ImageWriter> it = ImageIO.getImageWritersByFormatName(format); while (it.hasNext()) { ImageWriter writer = it.next(); ImageWriteParam param = writer.getDefaultWriteParam(); System.out.println(MessageFormat.format(rb.getString("writer"), writer.getClass().getName(), param.canWriteCompressed(), param.canWriteProgressive(), param.canWriteTiles(), param.canOffsetTiles(), param.canWriteCompressed() ? Arrays.toString(param.getCompressionTypes()) : null)); } }
File input = new File("digital_image_processing.jpg"); BufferedImage image = ImageIO.read(input); File compressedImageFile = new File("compress.jpg"); OutputStream os = new FileOutputStream(compressedImageFile); Iterator<ImageWriter>writers = ImageIO.getImageWritersByFormatName("jpg"); ImageWriter writer = (ImageWriter) writers.next(); ImageOutputStream ios = ImageIO.createImageOutputStream(os); writer.setOutput(ios); ImageWriteParam param = writer.getDefaultWriteParam(); // Check if canWriteCompressed is true if(param.canWriteCompressed()) { param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); param.setCompressionQuality(0.05f); } // End of check writer.write(null, new IIOImage(image, null, null), param);
ImageWriteParam param = writer.getDefaultWriteParam(); if (param.canWriteCompressed()) { // NOTE: Any method named [set|get]Compression.* throws UnsupportedOperationException if false param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); param.setCompressionQuality(0.5f); }
public static File convertImageToOutputType(BufferedImage image, String outputPath, String outputType, float compressLevel) throws IOException { File compressedImageFile = new File(outputPath); OutputStream os = new FileOutputStream(compressedImageFile); Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName(outputType); ImageWriter writer = writers.next(); ImageOutputStream ios = ImageIO.createImageOutputStream(os); writer.setOutput(ios); ImageWriteParam param = writer.getDefaultWriteParam(); if (param.canWriteCompressed()) { param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); param.setCompressionQuality(compressLevel); } writer.write(null, new IIOImage(image, null, null), param); return compressedImageFile; }
private static void encodeImage(BufferedImage image, OutputStream out, Params params) throws IOException { Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName(params.getImageType().getName()); // these guys were found ImageWriter writer = writers.hasNext() ? writers.next() : null; ImageWriteParam imageWriteParam = writer.getDefaultWriteParam(); if (imageWriteParam.canWriteProgressive()) { imageWriteParam.setProgressiveMode(params.isProgressive() ? ImageWriteParam.MODE_DEFAULT : ImageWriteParam.MODE_DISABLED); } if (imageWriteParam.canWriteCompressed()) { imageWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); imageWriteParam.setCompressionQuality(params.getCompressionQuality()); } ImageOutputStream ios = ImageIO.createImageOutputStream(out); writer.setOutput(ios); writer.write(null, new IIOImage(image,null,null), imageWriteParam); writer.dispose(); ios.close(); }
public void writeTo(OutputStream os, String mimeType) { ImageWriter writer = ImageIO.getImageWritersByMIMEType(mimeType(mimeType)).next(); dropAlphaChannelIfJPEG(writer); ImageWriteParam params = writer.getDefaultWriteParam(); if (!Float.isNaN(compressionQuality) && params.canWriteCompressed()) { params.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); params.setCompressionType(params.getCompressionTypes()[0]); params.setCompressionQuality(compressionQuality); } ImageOutputStream ios = os(os); writer.setOutput(ios); IIOImage image = new IIOImage(get(), null, null); try { writer.write(null, image, params); } catch (IOException e) { throw ioException(e); } IO.flush(ios); writer.dispose(); }
/** * Returns the image output parameters to control the output image quality, compression, etc. By default * this uses the compression values set in this class. Override this method to get full control over the * ImageWriteParam used in image output. * * @param writer The ImageWriter we are going to use for image output. * @return ImageWriteParam configured for image output. */ protected ImageWriteParam getImageWriteParameters(ImageWriter writer) { ImageWriteParam param = writer.getDefaultWriteParam(); if (param.canWriteCompressed()) { if (writeCompressionMode != ImageWriteParam.MODE_COPY_FROM_METADATA) { param.setCompressionMode(writeCompressionMode); // see docs for IWP--only allowed to set type and quality if mode is EXPLICIT if (writeCompressionMode == ImageWriteParam.MODE_EXPLICIT) { param.setCompressionType(writeCompressionType); param.setCompressionQuality(writeCompressionQuality); } } } return param; }