Example usage for javax.imageio ImageIO getImageReadersByMIMEType

List of usage examples for javax.imageio ImageIO getImageReadersByMIMEType

Introduction

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

Prototype

public static Iterator<ImageReader> getImageReadersByMIMEType(String MIMEType) 

Source Link

Document

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

Usage

From source file:org.exoplatform.wcm.ext.component.activity.FileUIActivity.java

protected int getImageHeight(Node node) {
    int imageHeight = 0;
    try {//from  ww w .  j  av a2 s  .  c om
        if (node.hasNode(NodetypeConstant.JCR_CONTENT))
            node = node.getNode(NodetypeConstant.JCR_CONTENT);
        ImageReader reader = ImageIO.getImageReadersByMIMEType(mimeType).next();
        ImageInputStream iis = ImageIO.createImageInputStream(node.getProperty("jcr:data").getStream());
        reader.setInput(iis, true);
        imageHeight = reader.getHeight(0);
        iis.close();
        reader.dispose();
    } catch (Exception e) {
        LOG.info("Cannot get node");
    }
    return imageHeight;
}

From source file:org.exoplatform.wcm.notification.plugin.FileActivityChildPlugin.java

private int getImageWidth(Node node) {
    int imageWidth = 0;
    try {/*w ww . j av  a 2s.  c om*/
        if (node.hasNode(NodetypeConstant.JCR_CONTENT))
            node = node.getNode(NodetypeConstant.JCR_CONTENT);
        ImageReader reader = ImageIO.getImageReadersByMIMEType(mimeType).next();
        ImageInputStream iis = ImageIO.createImageInputStream(node.getProperty("jcr:data").getStream());
        reader.setInput(iis, true);
        imageWidth = reader.getWidth(0);
        iis.close();
        reader.dispose();
    } catch (RepositoryException | IOException e) {
        if (LOG.isWarnEnabled()) {
            LOG.warn("Can not get image width in " + this.getClass().getName());
        }
    }
    return imageWidth;
}

From source file:org.exoplatform.wcm.notification.plugin.FileActivityChildPlugin.java

private int getImageHeight(Node node) {
    int imageHeight = 0;
    try {/*w  w w.j  a  v a2s.  c  om*/
        if (node.hasNode(NodetypeConstant.JCR_CONTENT))
            node = node.getNode(NodetypeConstant.JCR_CONTENT);
        ImageReader reader = ImageIO.getImageReadersByMIMEType(mimeType).next();
        ImageInputStream iis = ImageIO.createImageInputStream(node.getProperty("jcr:data").getStream());
        reader.setInput(iis, true);
        imageHeight = reader.getHeight(0);
        iis.close();
        reader.dispose();
    } catch (RepositoryException | IOException e) {
        if (LOG.isWarnEnabled()) {
            LOG.warn("Can not get image height in " + this.getClass().getName());
        }
    }
    return imageHeight;
}

From source file:org.hippoecm.frontend.plugins.gallery.imageutil.ImageUtils.java

/**
 * Returns an image reader for a MIME type.
 *
 * @param aMimeType MIME type/*from  w  w w. j a v a2s .c o m*/
 * @return an image reader for the given MIME type, or <code>null</code> if no image reader could be created
 * for the given MIME type.
 */
public static ImageReader getImageReader(String aMimeType) {
    String mimeType = MimeTypeHelper.sanitizeMimeType(aMimeType);
    Iterator<ImageReader> readers = ImageIO.getImageReadersByMIMEType(mimeType);
    if (readers == null || !readers.hasNext()) {
        return null;
    }
    return readers.next();
}

From source file:org.hippoecm.frontend.plugins.gallery.imageutil.ScaleImageOperationTest.java

private void checkImageDimensions(ScaleImageOperation scaleOp, String mimeType, int expectedWidth,
        int expectedHeight) throws IOException {
    assertEquals(expectedWidth, scaleOp.getScaledWidth());
    assertEquals(expectedHeight, scaleOp.getScaledHeight());

    ImageReader reader = ImageIO.getImageReadersByMIMEType(mimeType).next();
    ImageInputStream iis = null;/*from w  ww  .  j a  va2  s .co  m*/
    try {
        iis = ImageIO.createImageInputStream(scaleOp.getScaledData());
        reader.setInput(iis);
        assertEquals(scaleOp.getScaledWidth(), reader.getWidth(0));
        assertEquals(scaleOp.getScaledHeight(), reader.getHeight(0));
    } finally {
        if (iis != null) {
            iis.close();
        }
    }
}

From source file:org.jahia.services.image.AbstractJava2DImageService.java

protected boolean canRead(JCRNodeWrapper node) throws RepositoryException {
    Node contentNode = node.getNode(Constants.JCR_CONTENT);
    String mimeType = contentNode.getProperty(Constants.JCR_MIMETYPE).getString();

    Iterator<ImageReader> imageReaderIterator = ImageIO.getImageReadersByMIMEType(mimeType);
    if (imageReaderIterator.hasNext()) {
        // now let's check if we can also write it.
        Iterator<ImageWriter> imageWriterIterator = ImageIO.getImageWritersByMIMEType(mimeType);
        if (imageWriterIterator.hasNext()) {
            return true;
        } else {//from   w  ww .j a  v a 2 s.co  m
            return false;
        }
    } else {
        return false;
    }
}

From source file:org.paxle.gui.impl.servlets.ConfigView.java

public void writeImage(HttpServletRequest request, HttpServletResponse response, Context context)
        throws Exception {
    final String pid = request.getParameter("pid");
    if (pid == null) {
        response.sendError(501, "No pid supplied.");
        return;//from   w w  w. j a v  a 2 s.c om
    }

    final String bundleID = request.getParameter("bundleID");
    if (bundleID == null) {
        response.sendError(501, "No bundle-ID supplied.");
        return;
    }

    final ConfigTool configTool = (ConfigTool) context.get(ConfigTool.TOOL_NAME);
    if (configTool == null) {
        response.sendError(501, "Config-Tool not found.");
        return;
    }

    final Configurable configurabel = configTool.getConfigurable(Integer.valueOf(bundleID), pid);
    if (configurabel == null) {
        response.sendError(501, String
                .format("No configurable component found for bundle-ID '%s' and PID '%s'.", bundleID, pid));
        return;
    }

    // loading metadata
    final ObjectClassDefinition ocd = configurabel.getObjectClassDefinition();
    if (ocd == null) {
        response.sendError(501,
                String.format("No ObjectClassDefinition found for service with PID '%s'.", pid));
        return;
    }

    try {
        // trying to find a proper icon
        final int[] sizes = new int[] { 16, 32, 64, 128, 256 };

        BufferedImage img = null;
        for (int size : sizes) {
            // trying to find an icon
            InputStream in = ocd.getIcon(size);
            if (in == null) {
                if (size == sizes[sizes.length - 1]) {
                    // fallback to the default image
                    in = this.getClass().getResourceAsStream("/resources/images/cog.png");
                } else
                    continue;
            }

            // loading date
            final ByteArrayOutputStream bout = new ByteArrayOutputStream();
            IOUtils.copy(in, bout);
            bout.close();
            in.close();

            // trying to detect the mimetype of the image
            ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
            String contentType = URLConnection.guessContentTypeFromStream(bin);
            bin.close();

            Iterator<ImageReader> readers = null;
            if (contentType != null) {
                readers = ImageIO.getImageReadersByMIMEType(contentType);
            } else {
                readers = ImageIO.getImageReadersByFormatName("png");
            }

            while (readers.hasNext() && img == null) {
                // trying the next reader
                final ImageReader reader = readers.next();

                InputStream input = null;
                try {
                    input = new ByteArrayInputStream(bout.toByteArray());
                    reader.setInput(ImageIO.createImageInputStream(input));
                    img = reader.read(0);
                } catch (Exception e) {
                    this.log("Unable to read image for pid " + pid, e);
                } finally {
                    if (input != null)
                        input.close();
                }
            }

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

        // no icon found. 
        response.sendError(404);
    } catch (Throwable e) {
        response.sendError(404, e.getMessage());
        return;
    }
}

From source file:org.paxle.gui.impl.servlets.MetaDataIconServlet.java

@Override
protected void doRequest(HttpServletRequest request, HttpServletResponse response) {
    try {/*from   ww w  .j av a  2 s  .c o  m*/
        final Context context = this.getVelocityView().createContext(request, response);
        final String servicePID = request.getParameter(REQ_PARAM_SERVICEPID);

        if (servicePID != null) {
            // getting the metaDataTool
            final MetaDataTool tool = (MetaDataTool) context.get(MetaDataTool.TOOL_NAME);
            if (tool == null) {
                this.log("No MetaDataTool found");
                return;
            }

            final IMetaData metaData = tool.getMetaData(servicePID);
            if (metaData == null) {
                this.log(String.format("No metadata found for service with PID '%s'.", servicePID));
                return;
            }

            // getting the icon
            InputStream in = metaData.getIcon(16);
            if (in == null)
                in = this.getClass().getResourceAsStream("/resources/images/cog.png");

            // loading date
            final ByteArrayOutputStream bout = new ByteArrayOutputStream();
            IOUtils.copy(in, bout);
            bout.close();
            in.close();

            // trying to detect the mimetype of the image
            final ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
            String contentType = URLConnection.guessContentTypeFromStream(bin);
            bin.close();

            // reading the image
            BufferedImage img = null;
            Iterator<ImageReader> readers = null;
            if (contentType != null) {
                readers = ImageIO.getImageReadersByMIMEType(contentType);
                while (readers != null && readers.hasNext() && img == null) {
                    // trying the next reader
                    ImageReader reader = readers.next();

                    InputStream input = null;
                    try {
                        input = new ByteArrayInputStream(bout.toByteArray());
                        reader.setInput(ImageIO.createImageInputStream(input));
                        img = reader.read(0);
                    } catch (Exception e) {
                        this.log(String.format("Unable to read metadata icon for service with PID '%s'.",
                                servicePID), e);
                    } finally {
                        if (input != null)
                            input.close();
                    }
                }
            }

            if (img != null) {
                response.setHeader("Content-Type", "image/png");
                ImageIO.write(img, "png", response.getOutputStream());
                return;
            } else {
                response.sendError(404);
                return;
            }
        } else {
            response.sendError(500, "Invalid usage");
        }
    } catch (Throwable e) {
        this.log(String.format("Unexpected '%s'.", e.getClass().getName()), e);
    }
}