Example usage for javax.imageio ImageIO getImageWritersBySuffix

List of usage examples for javax.imageio ImageIO getImageWritersBySuffix

Introduction

In this page you can find the example usage for javax.imageio ImageIO getImageWritersBySuffix.

Prototype

public static Iterator<ImageWriter> getImageWritersBySuffix(String fileSuffix) 

Source Link

Document

Returns an Iterator containing all currently registered ImageWriter s that claim to be able to encode files with the given suffix.

Usage

From source file:org.asqatasun.rules.test.AbstractRuleImplementationTestCase.java

private String getImageExtension(String imageUrl) {
    String ext = imageUrl.substring(imageUrl.lastIndexOf('.') + 1);
    java.util.Iterator<ImageWriter> it = ImageIO.getImageWritersBySuffix(ext);
    if (it.next() != null) {
        return ext;
    } else {//from  w  w  w  .ja va2  s .c  o m
        return "jpg";
    }
}

From source file:org.freecine.filmscan.Project.java

private void saveImage(RenderedImage img, File file) {
    // Find a writer for that file extensions
    // Try to determine the file type based on extension
    String ftype = "jpg";
    String imageFname = file.getName();
    int extIndex = imageFname.lastIndexOf(".") + 1;
    if (extIndex > 0) {
        ftype = imageFname.substring(extIndex);
    }/*from   w w w.  j av a2 s .c  om*/

    ImageWriter writer = null;
    Iterator iter = ImageIO.getImageWritersBySuffix(ftype);
    writer = (ImageWriter) iter.next();

    if (writer != null) {
        ImageOutputStream ios = null;
        try {
            // Prepare output file
            ios = ImageIO.createImageOutputStream(file);
            writer.setOutput(ios);
            // Set some parameters
            ImageWriteParam param = writer.getDefaultWriteParam();
            writer.write(null, new IIOImage(img, null, null), param);

            // Cleanup
            ios.flush();

        } catch (IOException ex) {
            log.severe("Error saving image " + file.getAbsolutePath() + ": " + ex.getMessage());
        } finally {
            if (ios != null) {
                try {
                    ios.close();
                } catch (IOException e) {
                    log.severe("Error closing output stream: " + e.getMessage());
                }
            }
            writer.dispose();
        }
    }
}

From source file:org.onehippo.forge.gallerymagick.core.command.ScalrProcessorUtils.java

/**
 * Creates and returns an {@link ImageWriter} instance from the {@code targetFile}.
 * @param targetFile target file/*from w w w  .  j  av  a 2s . c o  m*/
 * @return an {@link ImageWriter} instance
 * @throws IOException if IOException occurs
 */
private static ImageWriter getImageWriter(File targetFile) throws IOException {
    ImageWriter writer = null;
    String extension = FilenameUtils.getExtension(targetFile.getName());
    Iterator<ImageWriter> it = ImageIO.getImageWritersBySuffix(extension);

    if (it.hasNext()) {
        writer = it.next();
        ImageOutputStream output = new FileImageOutputStream(targetFile);
        writer.setOutput(output);
    }

    return writer;
}

From source file:org.sejda.sambox.pdmodel.graphics.image.JPEGFactory.java

private static void encodeImageToJPEGStream(BufferedImage image, float quality, int dpi, OutputStream out)
        throws IOException {
    // encode to JPEG
    ImageOutputStream ios = null;
    ImageWriter imageWriter = null;
    try {/*from   w  ww .j  a va2s.  c o  m*/
        // find JAI writer
        imageWriter = ImageIO.getImageWritersBySuffix("jpeg").next();
        ios = ImageIO.createImageOutputStream(out);
        imageWriter.setOutput(ios);

        // add compression
        JPEGImageWriteParam jpegParam = (JPEGImageWriteParam) imageWriter.getDefaultWriteParam();
        jpegParam.setCompressionMode(JPEGImageWriteParam.MODE_EXPLICIT);
        jpegParam.setCompressionQuality(quality);

        // add metadata
        ImageTypeSpecifier imageTypeSpecifier = new ImageTypeSpecifier(image);
        IIOMetadata data = imageWriter.getDefaultImageMetadata(imageTypeSpecifier, jpegParam);
        Element tree = (Element) data.getAsTree("javax_imageio_jpeg_image_1.0");
        Element jfif = (Element) tree.getElementsByTagName("app0JFIF").item(0);
        jfif.setAttribute("Xdensity", Integer.toString(dpi));
        jfif.setAttribute("Ydensity", Integer.toString(dpi));
        jfif.setAttribute("resUnits", "1"); // 1 = dots/inch

        // write
        imageWriter.write(data, new IIOImage(image, null, null), jpegParam);
    } finally {
        // clean up
        IOUtils.closeQuietly(out);
        if (ios != null) {
            ios.close();
        }
        if (imageWriter != null) {
            imageWriter.dispose();
        }
    }
}