Example usage for javax.imageio ImageIO getImageReadersByFormatName

List of usage examples for javax.imageio ImageIO getImageReadersByFormatName

Introduction

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

Prototype

public static Iterator<ImageReader> getImageReadersByFormatName(String formatName) 

Source Link

Document

Returns an Iterator containing all currently registered ImageReader s that claim to be able to decode the named format.

Usage

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   www. ja v a 2s. 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.geoserver.wcs.GetCoverageTest.java

/**
 * This tests just ended up throwing an exception as the coverage being encoded
 * was too large due to a bug in the scales estimation
 * /*  w  w w.j ava2s .  com*/
 * @throws Exception
 */
@Test
public void testRotatedPost() throws Exception {
    String request = "<GetCoverage xmlns=\"http://www.opengis.net/wcs/1.1.1\" xmlns:gml=\"http://www.opengis.net/gml\"\n"
            + "             xmlns:ows11=\"http://www.opengis.net/ows/1.1\"\n"
            + "             xmlns:ows=\"http://www.opengis.net/ows/1.1\"\n"
            + "             xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \r\n" + //
            "             xmlns:wcs=\"http://schemas.opengis.net/wcs/1.1.1\"\n"
            + "             xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n" + "             service=\"WCS\"\n"
            + "             version=\"1.1.1\"\n"
            + "             xsi:schemaLocation=\"http://www.opengis.net/wcs/1.1.1 http://schemas.opengis.net/wcs/1.1.1/wcsAll.xsd\">\n"
            + "   <ows11:Identifier>RotatedCad</ows11:Identifier>\n" + "   <DomainSubset>\n"
            + "      <ows11:BoundingBox crs=\"urn:ogc:def:crs:OGC:1.3:CRS84\">\n"
            + "         <ows11:LowerCorner>7.7634301664746515 45.14713380418506</ows11:LowerCorner>\n"
            + "         <ows11:UpperCorner>7.764350661575157 45.14763319238466</ows11:UpperCorner>\n"
            + "      </ows11:BoundingBox>\n" + "   </DomainSubset>\n" + "   <Output format=\"image/tiff\"/>\n"
            + "</GetCoverage>";

    MockHttpServletResponse response = postAsServletResponse("wcs", request);

    // parse the multipart, check there are two parts
    Multipart multipart = getMultipart(response);
    assertEquals(2, multipart.getCount());
    BodyPart coveragePart = multipart.getBodyPart(1);
    assertEquals("image/tiff", coveragePart.getContentType());
    assertEquals("<theCoverage>", coveragePart.getHeader("Content-ID")[0]);

    // make sure we can read the coverage back
    ImageReader reader = ImageIO.getImageReadersByFormatName("tiff").next();
    reader.setInput(ImageIO.createImageInputStream(coveragePart.getInputStream()));
    RenderedImage image = reader.read(0);

    // check the image is suitably small (without requiring an exact size)
    assertTrue(image.getWidth() < 1000);
    assertTrue(image.getHeight() < 1000);
}

From source file:org.geoserver.wcs.GetCoverageTest.java

/**
 * This tests just ended up throwing an exception as the coverage being encoded
 * was too large due to a bug in the scales estimation
 * /*from w  w w .  j  a v  a 2 s .  c o m*/
 * @throws Exception
 */
@Test
public void testRotatedGet() throws Exception {
    String request = "wcs?&service=WCS&request=GetCoverage&version=1.1.1&identifier=RotatedCad&BoundingBox=7.7634071540971386,45.14712131948007,7.76437367395267,45.14764567708965,urn:ogc:def:crs:OGC:1.3:CRS84&Format=image/tiff";
    MockHttpServletResponse response = getAsServletResponse(request);

    // parse the multipart, check there are two parts
    Multipart multipart = getMultipart(response);
    assertEquals(2, multipart.getCount());
    BodyPart coveragePart = multipart.getBodyPart(1);
    assertEquals("image/tiff", coveragePart.getContentType());
    assertEquals("<theCoverage>", coveragePart.getHeader("Content-ID")[0]);

    // make sure we can read the coverage back
    ImageReader reader = ImageIO.getImageReadersByFormatName("tiff").next();
    reader.setInput(ImageIO.createImageInputStream(coveragePart.getInputStream()));
    RenderedImage image = reader.read(0);

    // check the image is suitably small (without requiring an exact size)
    assertTrue(image.getWidth() < 1000);
    assertTrue(image.getHeight() < 1000);
}

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

/**
 Load the scan strip image from disk//from  w  w  w  . j a  v a2 s  .  c o  m
 */
private void loadImage() {
    ImageReader reader;
    try {
        //        PlanarImage img = JAI.create( "fileload", fname );
        ImageInputStream istrm = new FileImageInputStream(file);
        reader = ImageIO.getImageReadersByFormatName("TIFF").next();
        reader.setInput(istrm);
        ImageReadParam param = reader.getDefaultReadParam();

        /*
         Set the color mode to linear sRGB as we don't have a better profile
         for the scanner/film available
         */
        ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB);
        ImageLayout layout = new ImageLayout();
        ColorModel cm = new ComponentColorModel(cs, false, false, ColorModel.OPAQUE, DataBuffer.TYPE_USHORT);
        layout.setColorModel(cm);
        RenderingHints hints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout);
        stripImage = ImageReadDescriptor.create(istrm, 0, false, false, false, null, null, param, reader,
                hints);
        System.out.println("Color model " + stripImage.getColorModel());
        // BufferedImage inImg = reader.read( 0, param );            
    } catch (FileNotFoundException ex) {
        System.out.println(ex.getMessage());
        log.error("Strip file " + file + " not found", ex);
    } catch (IOException ex) {
        log.error("IO error reading strip " + file + ": ", ex);
    }
}

From source file:pl.edu.icm.visnow.system.main.VisNow.java

private static void startupInfo() {
    LOGGER.info("");
    LOGGER.info("");
    LOGGER.info("-------- VisNow startup info --------");

    if (debug) {//from  w w  w .j av  a2 s .  c o  m
        RuntimeMXBean RuntimemxBean = ManagementFactory.getRuntimeMXBean();
        List<String> aList = RuntimemxBean.getInputArguments();
        LOGGER.info(" * JVM startup flags:");
        for (int i = 0; i < aList.size(); i++) {
            LOGGER.info("    " + aList.get(i));
        }
        LOGGER.info("");
        Set<String> p = System.getProperties().stringPropertyNames();
        Iterator<String> ip = p.iterator();
        LOGGER.info(" * System properties:");
        String key;
        while (ip.hasNext()) {
            key = ip.next();
            LOGGER.info("    " + key + " = " + System.getProperty(key));
        }
        LOGGER.info("");

        Map<String, String> env = System.getenv();
        Set<String> envKeys = env.keySet();
        Iterator<String> envKeysI = envKeys.iterator();

        LOGGER.info(" * Environment variables:");
        while (envKeysI.hasNext()) {
            key = envKeysI.next();
            LOGGER.info("    " + key + " = " + env.get(key));
        }
        LOGGER.info("  ");
        LOGGER.info("------ Java Advanced Imaging info -------");
        String[] formats = ImageIO.getReaderFormatNames();
        String readerDescription, readerVendorName, readerVersion;
        ImageReader reader;
        ImageReaderSpi spi;
        for (int i = 0; i < formats.length; i++) {
            Iterator<ImageReader> tmpReaders = ImageIO.getImageReadersByFormatName(formats[i]);
            while (tmpReaders.hasNext()) {
                reader = tmpReaders.next();
                spi = reader.getOriginatingProvider();
                readerDescription = spi.getDescription(Locale.US);
                readerVendorName = spi.getVendorName();
                readerVersion = spi.getVersion();
                LOGGER.info("    " + formats[i] + ": " + readerDescription + " " + readerVendorName + " "
                        + readerVersion);
            }
        }
        LOGGER.info("-----------------------------------------");

    } else {

        LOGGER.info(" * System properties:");
        LOGGER.info("    java.runtime.name = " + System.getProperty("java.runtime.name"));
        LOGGER.info("    java.vm.version = " + System.getProperty("java.vm.version"));
        LOGGER.info("    java.vm.vendor = " + System.getProperty("java.vm.vendor"));
        LOGGER.info("    java.vm.name = " + System.getProperty("java.vm.name"));
        LOGGER.info("    java.specification.version = " + System.getProperty("java.specification.version"));
        LOGGER.info("    java.runtime.version = " + System.getProperty("java.runtime.version"));
        LOGGER.info("    os.arch = " + System.getProperty("os.arch"));
        LOGGER.info("    os.name = " + System.getProperty("os.name"));
        LOGGER.info("    os.version = " + System.getProperty("os.version"));
        LOGGER.info("    java.library.path = " + System.getProperty("java.library.path"));
        LOGGER.info("    java.class.path = " + System.getProperty("java.class.path"));
        LOGGER.info("    java.ext.dirs = " + System.getProperty("java.ext.dirs"));
        LOGGER.info("");
        LOGGER.info(" * Environment variables:");
        LOGGER.info("    JAVA_HOME = " + System.getenv("JAVA_HOME"));
        LOGGER.info("    PATH = " + System.getenv("PATH"));
        LOGGER.info("    LD_LIBRARY_PATH = " + System.getenv("LD_LIBRARY_PATH"));
        LOGGER.info("    CLASSPATH = " + System.getenv("CLASSPATH"));
        LOGGER.info("-------------------------------------");

    }
    LOGGER.info("");
    LOGGER.info("");

}

From source file:net.frontlinesms.plugins.forms.FormsPluginController.java

private void convertByteImageToFile(byte[] imageByte, String path) throws Exception {
    System.out.println("path ...... convertByteImageToFile ......... " + path);

    ByteArrayInputStream bis = new ByteArrayInputStream(imageByte);
    Iterator<?> readers = ImageIO.getImageReadersByFormatName("jpg");

    ImageReader reader = (ImageReader) readers.next();
    Object source = bis;/* w w w . j  a  v  a  2s.co  m*/
    ImageInputStream iis = ImageIO.createImageInputStream(source);
    reader.setInput(iis, true);
    ImageReadParam param = reader.getDefaultReadParam();

    Image image = reader.read(0, param);
    //got an image file

    BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null),
            BufferedImage.TYPE_INT_RGB);
    //bufferedImage is the RenderedImage to be written

    Graphics2D g2 = bufferedImage.createGraphics();
    g2.drawImage(image, null, null);

    File imageFile = new File(path);
    ImageIO.write(bufferedImage, "jpg", imageFile);
    System.out.println(" end write image ");
}