Example usage for javax.imageio ImageIO getImageReaders

List of usage examples for javax.imageio ImageIO getImageReaders

Introduction

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

Prototype

public static Iterator<ImageReader> getImageReaders(Object input) 

Source Link

Document

Returns an Iterator containing all currently registered ImageReader s that claim to be able to decode the supplied Object , typically an ImageInputStream .

Usage

From source file:de.cismet.cids.custom.objecteditors.wunda_blau.WebDavPicturePanel.java

/**
 * DOCUMENT ME!//from ww  w. j a v a 2 s  .c  o  m
 *
 * @param   fileName  DOCUMENT ME!
 *
 * @return  DOCUMENT ME!
 *
 * @throws  Exception  DOCUMENT ME!
 */
private BufferedImage downloadImageFromWebDAV(final String fileName) throws Exception {
    final InputStream iStream = webdavHelper.getFileFromWebDAV(fileName, webdavDirectory,
            getConnectionContext());
    try {
        final ImageInputStream iiStream = ImageIO.createImageInputStream(iStream);
        final Iterator<ImageReader> itReader = ImageIO.getImageReaders(iiStream);
        if (itReader.hasNext()) {
            final ImageReader reader = itReader.next();
            final ProgressMonitor monitor = new ProgressMonitor(this, "Bild wird bertragen...", "", 0, 100);
            //            monitor.setMillisToPopup(500);
            reader.addIIOReadProgressListener(new IIOReadProgressListener() {

                @Override
                public void sequenceStarted(final ImageReader source, final int minIndex) {
                }

                @Override
                public void sequenceComplete(final ImageReader source) {
                }

                @Override
                public void imageStarted(final ImageReader source, final int imageIndex) {
                    monitor.setProgress(monitor.getMinimum());
                }

                @Override
                public void imageProgress(final ImageReader source, final float percentageDone) {
                    if (monitor.isCanceled()) {
                        try {
                            iiStream.close();
                        } catch (final IOException ex) {
                            // NOP
                        }
                    } else {
                        monitor.setProgress(Math.round(percentageDone));
                    }
                }

                @Override
                public void imageComplete(final ImageReader source) {
                    monitor.setProgress(monitor.getMaximum());
                }

                @Override
                public void thumbnailStarted(final ImageReader source, final int imageIndex,
                        final int thumbnailIndex) {
                }

                @Override
                public void thumbnailProgress(final ImageReader source, final float percentageDone) {
                }

                @Override
                public void thumbnailComplete(final ImageReader source) {
                }

                @Override
                public void readAborted(final ImageReader source) {
                    monitor.close();
                }
            });

            final ImageReadParam param = reader.getDefaultReadParam();
            reader.setInput(iiStream, true, true);
            final BufferedImage result;
            try {
                result = reader.read(0, param);
            } finally {
                reader.dispose();
                iiStream.close();
            }
            return result;
        } else {
            return null;
        }
    } finally {
        IOUtils.closeQuietly(iStream);
    }
}

From source file:org.n52.v3d.terrainserver.povraywts.WebTerrainServlet.java

private BufferedImage prepareImage(ImageInputStream pImageIn, int pHeight, int pWidth, VgElevationGrid pTerrain,
        double pPitch, double pYaw, double pDistance, double pExaggeration, boolean pDrawNorthArrow,
        boolean pHints) {
    BufferedImage lImage = null;/* w w w  .  j a  v  a 2 s  .  co  m*/
    Iterator iter = ImageIO.getImageReaders(pImageIn); // liefert PNG-ImageReader
    ImageReader reader = (ImageReader) iter.next();
    reader.setInput(pImageIn, true); // seek forward only?

    boolean ready = false;
    int lMaxIntervalChecks = 40;
    long lCheckInterval = mRendererTimeout / lMaxIntervalChecks;
    int ct = 0;
    while ((!ready) && (ct < lMaxIntervalChecks)) {
        try {
            lImage = reader.read(0);
            ready = true;
        } catch (IOException e) {
            ct++;
            try {
                Thread.sleep(lCheckInterval);
            } catch (Exception e2) {
            }
            ;
        }
    }
    if (!ready)
        throw new T3dException("An I/O exception occured. The renderer did not generate an image file.", 403);

    // Copyright-Text und Nordpfeil ergnzen:
    this.addAnnotations(lImage, pHeight, pWidth, pPitch, pYaw, pDrawNorthArrow);
    // Ggf. weitere Information (Hints) ergnzen:
    if (pHints)
        this.addHints(lImage, pTerrain, pDistance, pYaw, pExaggeration);

    return lImage;
}

From source file:org.xwiki.contrib.ldap.XWikiLDAPUtils.java

/**
 * Guess image type of InputStream.//from   www  . j a  va  2 s  .co m
 * 
 * @param imageInputStream InputStream containing image.
 * @return type of image as String.
 */
protected String guessImageType(InputStream imageInputStream) {
    ImageInputStream imageStream;
    try {
        imageStream = ImageIO.createImageInputStream(imageInputStream);
    } catch (IOException ex) {
        LOGGER.error(ex.getMessage());
        return null;
    }

    Iterator<ImageReader> it = ImageIO.getImageReaders(imageStream);
    if (!it.hasNext()) {
        LOGGER.warn("No image readers found for provided stream.");
        return null;
    }

    ImageReader imageReader = it.next();
    imageReader.setInput(imageStream);

    try {
        return imageReader.getFormatName();
    } catch (IOException ex) {
        LOGGER.error(ex.getMessage());
        return null;
    } finally {
        imageReader.dispose();
    }
}