Example usage for javax.imageio ImageIO getImageReadersBySuffix

List of usage examples for javax.imageio ImageIO getImageReadersBySuffix

Introduction

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

Prototype

public static Iterator<ImageReader> getImageReadersBySuffix(String fileSuffix) 

Source Link

Document

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

Usage

From source file:org.olat.core.commons.services.image.spi.ImageHelperImpl.java

private static SizeAndBufferedImage getImage(ImageInputStream stream, String suffix) {
    Iterator<ImageReader> iter = ImageIO.getImageReadersBySuffix(suffix);
    if (iter.hasNext()) {
        ImageReader reader = iter.next();
        try {// ww w. j ava2s.com
            reader.setInput(stream, true, true);
            int width = reader.getWidth(reader.getMinIndex());
            int height = reader.getHeight(reader.getMinIndex());
            Size size = new Size(width, height, false);
            SizeAndBufferedImage all = new SizeAndBufferedImage(size, null);

            int readerMinIndex = reader.getMinIndex();
            ImageReadParam param = reader.getDefaultReadParam();
            Iterator<ImageTypeSpecifier> imageTypes = reader.getImageTypes(0);
            while (imageTypes.hasNext()) {
                try {
                    ImageTypeSpecifier imageTypeSpecifier = imageTypes.next();
                    int bufferedImageType = imageTypeSpecifier.getBufferedImageType();
                    if (bufferedImageType == BufferedImage.TYPE_BYTE_GRAY) {
                        param.setDestinationType(imageTypeSpecifier);
                    }
                    all.setImage(reader.read(readerMinIndex, param));
                    return all;
                } catch (IllegalArgumentException e) {
                    log.warn(e.getMessage(), e);
                }
            }
        } catch (IOException e) {
            log.error(e.getMessage(), e);
        } finally {
            reader.dispose();
        }
    } else {
        log.error("No reader found for given format: " + suffix, null);
    }
    return null;
}

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

/**
 * Detects the {@code sourceFile} and returns the size dimension from it.
 * @param sourceFile source image file// w w  w.j  ava2s.  c om
 * @return Detects the {@code sourceFile} and returns the size dimension from it
 * @throws IOException if IO exception occurs
 */
public static ImageDimension identifyDimension(File sourceFile) throws IOException {
    ImageDimension dimension = null;
    String extension = FilenameUtils.getExtension(sourceFile.getName());
    Iterator<ImageReader> it = ImageIO.getImageReadersBySuffix(extension);

    if (!it.hasNext()) {
        throw new IllegalArgumentException("Unsupported file name extension: " + sourceFile);
    }

    ImageReader reader = null;

    try {
        reader = getImageReader(sourceFile);
        int width = reader.getWidth(reader.getMinIndex());
        int height = reader.getHeight(reader.getMinIndex());
        dimension = ImageDimension.from(width, height);
    } finally {
        if (reader != null) {
            reader.dispose();
        }
    }

    return dimension;
}

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

/**
 * Creates and returns an {@link ImageReader} instance from the {@code sourceFile}.
 * @param sourceFile source file//from   w  ww .j ava2  s . c o  m
 * @return an {@link ImageReader} instance
 * @throws IOException if IOException occurs
 */
private static ImageReader getImageReader(File sourceFile) throws IOException {
    ImageReader reader = null;
    String extension = FilenameUtils.getExtension(sourceFile.getName());
    Iterator<ImageReader> it = ImageIO.getImageReadersBySuffix(extension);

    if (it.hasNext()) {
        reader = it.next();
        ImageInputStream input = new FileImageInputStream(sourceFile);
        reader.setInput(input);
    }

    return reader;
}

From source file:org.paxle.gui.impl.MenuManager.java

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse response)
        throws ServletException, IOException {
    if (req.getParameter("icon") != null) {
        String iconURL = req.getParameter("icon");
        BufferedImage img = null;

        String fileSuffix = null;
        int idx = iconURL.lastIndexOf(".");
        if (idx != -1)
            fileSuffix = iconURL.substring(idx + 1);
        if (fileSuffix != null) {
            Iterator<ImageReader> readers = ImageIO.getImageReadersBySuffix(fileSuffix);
            while (readers.hasNext() && img == null) {
                ImageReader reader = readers.next();

                InputStream input = null;
                try {
                    input = new URL(iconURL).openStream();
                    reader.setInput(ImageIO.createImageInputStream(input));
                    img = reader.read(0);
                } catch (Exception e) {
                    this.log("Unable to read image from " + iconURL, e);
                } finally {
                    if (input != null)
                        input.close();//from www .jav a2  s.  c om
                }
            }
        } else {
            img = ImageIO.read(new URL(iconURL));
        }

        if (img != null) {
            response.setHeader("Content-Type", "image/png");
            ImageIO.write(img, "png", response.getOutputStream());
        } else {
            response.sendError(404);
        }
    }
}

From source file:org.photovault.image.ImageIOImage.java

/**
 * Get a proper image reader for a file based on file name extension.
 * @param f The file/* w w  w. j  av  a  2 s.  c  o m*/
 * @return Correct Reader or <CODE>null</CODE> if no proper reader is found.
 */
static private ImageReader getImageReader(File f) {
    ImageReader ret = null;
    if (f != null) {
        String fname = f.getName();
        int lastDotPos = fname.lastIndexOf(".");
        if (lastDotPos > 0 && lastDotPos < fname.length() - 1) {
            String suffix = fname.substring(lastDotPos + 1);
            Iterator readers = ImageIO.getImageReadersBySuffix(suffix);
            if (readers.hasNext()) {
                ret = (ImageReader) readers.next();
            }
        }
    }
    return ret;
}

From source file:org.photovault.imginfo.ImageFile.java

/**
 *     Opens the image file specified by fname & dirname properties, read
 *     the rest of fields from that and create the instances
 * @param f File from which to read the information
 * @throws org.photovault.common.PhotovaultException If the file is not of recognized type
 * @throws IOException if the image cannot be read.
 *///from  w  ww. java  2s  .  c om
protected void readImageFile(File f) throws PhotovaultException, IOException {

    String fname = f.getName();
    int lastDotPos = fname.lastIndexOf(".");
    if (lastDotPos <= 0 || lastDotPos >= fname.length() - 1) {
        throw new PhotovaultException("Cannot determine file type extension of " + f.getAbsolutePath());
    }
    String suffix = fname.substring(lastDotPos + 1);
    Iterator readers = ImageIO.getImageReadersBySuffix(suffix);
    if (readers.hasNext()) {
        ImageReader reader = (ImageReader) readers.next();
        ImageInputStream iis = null;
        try {
            iis = ImageIO.createImageInputStream(f);
            if (iis != null) {
                reader.setInput(iis, true);
                // int imageCount = reader.getNumImages( true );
                // for now...
                int imageCount = 1;
                for (int n = 0; n < imageCount; n++) {
                    ImageDescriptorBase img = new OriginalImageDescriptor(this, "image#" + n);
                    img.setWidth(reader.getWidth(n));
                    img.setHeight(reader.getHeight(n));
                    // img.setInstanceType( ImageInstance.INSTANCE_TYPE_ORIGINAL );
                    img.setFile(this);
                }
                reader.dispose();
            }
        } catch (IOException ex) {
            log.debug("Exception in readImageFile: " + ex.getMessage());
            throw ex;
        } finally {
            if (iis != null) {
                try {
                    iis.close();
                } catch (IOException ex) {
                    log.warn("Cannot close image stream: " + ex.getMessage());
                }
            }
        }
    } else {
        RawImage ri = new RawImage(f);
        if (ri.isValidRawFile()) {
            // PlanarImage img = ri.getCorrectedImage();
            ImageDescriptorBase img = new OriginalImageDescriptor(this, "image#0");
            img.setWidth(ri.getWidth());
            img.setHeight(ri.getHeight());
        } else {
            throw new PhotovaultException(
                    "Unknown image file extension " + suffix + "\nwhile reading " + f.getAbsolutePath());
        }
    }

}