Example usage for javax.imageio ImageIO createImageInputStream

List of usage examples for javax.imageio ImageIO createImageInputStream

Introduction

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

Prototype

public static ImageInputStream createImageInputStream(Object input) throws IOException 

Source Link

Document

Returns an ImageInputStream that will take its input from the given Object .

Usage

From source file:org.dita.dost.writer.ImageMetadataFilter.java

private Attributes readMetadata(final URI imgInput) {
    logger.info("Reading " + imgInput);
    final XMLUtils.AttributesBuilder a = new XMLUtils.AttributesBuilder();
    try {/*from  w  ww. ja v a 2s .c  o m*/
        InputStream in = null;
        ImageReader r = null;
        ImageInputStream iis = null;
        try {
            in = getInputStream(imgInput);
            iis = ImageIO.createImageInputStream(in);
            final Iterator<ImageReader> i = ImageIO.getImageReaders(iis);
            if (!i.hasNext()) {
                logger.info("Image " + imgInput + " format not supported");
            } else {
                r = i.next();
                r.setInput(iis);
                final int imageIndex = r.getMinIndex();
                a.add(DITA_OT_NS, ATTR_IMAGE_WIDTH, DITA_OT_PREFIX + ":" + ATTR_IMAGE_WIDTH, "CDATA",
                        Integer.toString(r.getWidth(imageIndex)));
                a.add(DITA_OT_NS, ATTR_IMAGE_HEIGHT, DITA_OT_PREFIX + ":" + ATTR_IMAGE_HEIGHT, "CDATA",
                        Integer.toString(r.getHeight(imageIndex)));
                final Element node = (Element) r.getImageMetadata(0).getAsTree("javax_imageio_1.0");
                final NodeList hs = node.getElementsByTagName("HorizontalPixelSize");
                if (hs != null && hs.getLength() == 1) {
                    final float v = Float.parseFloat(((Element) hs.item(0)).getAttribute("value"));
                    final int dpi = Math.round(MM_TO_INCH / v);
                    a.add(DITA_OT_NS, ATTR_HORIZONTAL_DPI, DITA_OT_PREFIX + ":" + ATTR_HORIZONTAL_DPI, "CDATA",
                            Integer.toString(dpi));
                }
                final NodeList vs = node.getElementsByTagName("VerticalPixelSize");
                if (vs != null && vs.getLength() == 1) {
                    final float v = Float.parseFloat(((Element) vs.item(0)).getAttribute("value"));
                    final int dpi = Math.round(MM_TO_INCH / v);
                    a.add(DITA_OT_NS, ATTR_VERTICAL_DPI, DITA_OT_PREFIX + ":" + ATTR_VERTICAL_DPI, "CDATA",
                            Integer.toString(dpi));
                }
            }
        } finally {
            if (r != null) {
                r.dispose();
            }
            if (iis != null) {
                iis.close();
            }
            if (in != null) {
                in.close();
            }
        }
    } catch (final Exception e) {
        logger.error("Failed to read image " + imgInput + " metadata: " + e.getMessage(), e);
    }
    return a.build();
}

From source file:br.com.pfood.mb.imp.ProdutoMB.java

public void handleFileUpload(FileUploadEvent event) throws IOException {
    if (listaImagensProduto.size() <= 5) {
        String dir = AppUtil.getDirFilesVendor() + usuarioLogado.getUsuario().getVendedor().getIdVendedor()
                + "/";
        String fileName = event.getFile().getFileName();

        InputStream is = event.getFile().getInputstream();
        String extencao = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length());
        extencao = extencao.replace("jpeg", "jpg");
        if (!extencao.equalsIgnoreCase("jpg")) {
            messageUtil.addMenssageWarn("Imagens devem ser do tipo JPG");
            return;
        }//from  w w  w  .j  av a2s  . c o m
        fileName = DigestUtils.md5Hex(fileName) + "." + extencao;

        try {
            FileOutputStream out = new FileOutputStream(dir + "or/" + fileName);
            int read = 0;
            byte[] bytes = new byte[1024];

            while ((read = is.read(bytes)) != -1) {
                out.write(bytes, 0, read);
            }

            out.close();
            out = null;
        } catch (Exception ex) {
            Logger.getLogger(ProdutoMB.class.getName()).log(Level.SEVERE, null, ex);
        }
        is.close();
        is = null;
        BufferedImage imagem = ImageIO.read(ImageIO.createImageInputStream(new File(dir + "or/" + fileName)));

        if (imagem.getWidth() >= 128 || imagem.getHeight() >= 128) {
            ImagemUtil.redimenImagem(dir + "sm/" + fileName, dir + "or/" + fileName, 128, 128, extencao);
        } else {
            ImagemUtil.redimenImagem(dir + "sm/" + fileName, dir + "or/" + fileName, imagem.getWidth(null),
                    imagem.getHeight(null), extencao);
        }

        if (imagem.getWidth() >= 640 || imagem.getHeight() >= 640) {
            ImagemUtil.redimenImagem(dir + "md/" + fileName, dir + "or/" + fileName, 640, 640, extencao);
        } else {
            ImagemUtil.redimenImagem(dir + "md/" + fileName, dir + "or/" + fileName, imagem.getWidth(null),
                    imagem.getHeight(null), extencao);
        }

        Imagem i = new Imagem();
        i.setCodigo(Imagecode.IMG_PRODUTO.getImgCode());
        i.setDescricao(event.getFile().getFileName());
        i.setHash(DigestUtils.md5Hex(event.getFile().getFileName()));
        i.setNomeArquivo(fileName);
        try {
            produtoBO.save(i);
            ImagemProduto imgProd = new ImagemProduto();
            imgProd.setProduto(obj);
            imgProd.setImagem(i);
            imgProd.setSequencia(listaImagensProduto.size() + 1);
            produtoBO.save(imgProd);
            listaImagensProduto.add(imgProd);
        } catch (Exception ex) {
            ex.printStackTrace();
            Logger.getLogger(ProdutoMB.class.getName()).log(Level.SEVERE, null, ex);
        }
    } else {
        messageUtil.addMenssageWarn("Maximo de 6 imagens por produto");
    }

}

From source file:org.medici.bia.controller.manuscriptviewer.IIPImageServerController.java

/**
 * This method retun a specific tiled image.
 * //from  w ww  . jav  a2  s.c om
 * @param httpServletRequest
 * @param httpServletResponse
 */
private void generateFullImage(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
    File imageFile = new File(ApplicationPropertyManager.getApplicationProperty("iipimage.image.path")
            + httpServletRequest.getParameter("FIF"));

    ImageInputStream imageInputStream = null;
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    InputStream inputStream = null;

    try {
        if (imageFile.canRead()) {
            // Reading complete tiff information
            imageInputStream = ImageIO.createImageInputStream(imageFile);
        } else {
            logger.error("File " + imageFile.toString() + " is not present on filesystem. ");
            imageFile = new File(ApplicationPropertyManager.getApplicationProperty("iipimage.image.path")
                    + ApplicationPropertyManager.getApplicationProperty("iipimage.image.notavailable"));
            if (imageFile.canRead()) {
                // Reading complete tiff information
                imageInputStream = ImageIO.createImageInputStream(imageFile);
            } else {
                logger.error("File " + imageFile.toString() + " is not present on filesystem. ");
            }
        }

        if (imageInputStream != null) {
            Iterator<ImageReader> readers = ImageIO.getImageReaders(imageInputStream);
            ImageReader reader = readers.next();
            reader.setInput(imageInputStream, true, true);

            // Reading image position requested
            Integer imageFullIndex = NumberUtils.createInteger(httpServletRequest.getParameter("full"));
            // Positioning at correct page
            BufferedImage pageImage = reader.read(imageFullIndex);
            // preparing image for output
            ImageIO.write(pageImage, "jpeg", byteArrayOutputStream);
            inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
            // writing image to output
            httpServletResponse.setContentType("image/jpeg");
            IOUtils.copy(inputStream, httpServletResponse.getOutputStream());
        }
        // Flushing request
        httpServletResponse.getOutputStream().flush();
    } catch (IOException ioException) {
        logger.debug(ioException);
    } finally {
        try {
            if (inputStream != null) {
                inputStream.close();
            }
        } catch (IOException ioException) {
        }
        try {
            if (byteArrayOutputStream != null) {
                byteArrayOutputStream.close();
            }
        } catch (IOException ioException) {
        }
        try {
            if (imageInputStream != null) {
                imageInputStream.close();
            }
        } catch (IOException ioException) {
        }
    }
}

From source file:fr.mby.opa.picsimpl.service.BasicPictureFactory.java

protected void loadPicture(final Picture picture, final byte[] contents, final BufferedInputStream stream)
        throws IOException, UnsupportedPictureTypeException {

    // Load BufferedImage
    stream.reset();//w w  w .j  a v a2s  .  co m
    final BufferedImage originalImage = ImageIO.read(stream);
    if (originalImage == null) {
        throw new UnsupportedPictureTypeException(picture.getFilename());
    }

    final int width = originalImage.getWidth();
    final int height = originalImage.getHeight();
    picture.setWidth(width);
    picture.setHeight(height);
    picture.setSize(contents.length);

    // Load thumbnail
    this.loadThumbnail(picture, originalImage);

    // Search for picture format
    String format = null;
    // with Java image readers
    stream.reset();
    final ImageInputStream imageStream = ImageIO.createImageInputStream(stream);
    final Iterator<ImageReader> imageReaders = ImageIO.getImageReaders(imageStream);
    if (imageReaders.hasNext()) {
        format = imageReaders.next().getFormatName();
    }
    // In picture filename extension
    if (format == null) {
        format = FilenameUtils.getExtension(picture.getFilename());
    }
    // Default format
    if (format == null) {
        format = BasicPictureFactory.DEFAULT_PICTURE_FORMAT;
    }
    picture.setFormat(format.toLowerCase());

    // Build Contents
    final BinaryImage image = new BinaryImage();
    image.setData(contents);
    image.setFilename(picture.getFilename());
    image.setFormat(format);
    image.setWidth(width);
    image.setHeight(height);
    picture.setImage(image);
}

From source file:org.psystems.dicomweb.Dcm2Jpg.java

public void convert(File src, File dest) throws IOException {
    Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM");
    ImageReader reader = iter.next();
    DicomImageReadParam param = (DicomImageReadParam) reader.getDefaultReadParam();
    param.setWindowCenter(center);//www.  j av a  2  s  . c  o m
    param.setWindowWidth(width);
    param.setVoiLutFunction(vlutFct);
    param.setPresentationState(prState);
    param.setPValue2Gray(pval2gray);
    param.setAutoWindowing(autoWindowing);
    ImageInputStream iis = ImageIO.createImageInputStream(src);
    BufferedImage bi;
    OutputStream out = null;
    try {
        reader.setInput(iis, false);
        bi = reader.read(frame - 1, param);
        if (bi == null) {
            System.out.println("\nError: " + src + " - couldn't read!");
            return;
        }
        out = new BufferedOutputStream(new FileOutputStream(dest));
        JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(out);
        enc.encode(bi);
    } finally {
        CloseUtils.safeClose(iis);
        CloseUtils.safeClose(out);
    }
    System.out.print('.');
}

From source file:org.psystems.dicom.daemon.Dcm2Jpg.java

public void convert(File src, File dest) throws IOException {
    Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM");
    ImageReader reader = iter.next();
    DicomImageReadParam param = (DicomImageReadParam) reader.getDefaultReadParam();
    param.setWindowCenter(center);//from w w w .java2 s.  co m
    param.setWindowWidth(width);
    param.setVoiLutFunction(vlutFct);
    param.setPresentationState(prState);
    param.setPValue2Gray(pval2gray);
    param.setAutoWindowing(autoWindowing);
    ImageInputStream iis = ImageIO.createImageInputStream(src);
    BufferedImage bi;
    OutputStream out = null;
    try {
        reader.setInput(iis, false);
        if (reader.getNumImages(false) <= 0) {
            System.out.println("\nError: " + src + " - Don't haven any images!");
            return;
        }
        //            System.out.println("!!! frame="+frame+" p="+reader.getNumImages(false));
        bi = reader.read(frame - 1, param);
        if (bi == null) {
            System.out.println("\nError: " + src + " - couldn't read!");
            return;
        }
        out = new BufferedOutputStream(new FileOutputStream(dest));
        JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(out);
        enc.encode(bi);
    } finally {
        CloseUtils.safeClose(iis);
        CloseUtils.safeClose(out);
    }
    System.out.print('.');
}

From source file:com.abelsky.idea.geekandpoke.entries.Entry.java

private void readObject(@NotNull ObjectInputStream in) throws IOException, ClassNotFoundException {
    in.defaultReadObject();/*from   w ww  .  j a  v a  2  s .c o  m*/
    imageRef = new SoftReference<BufferedImage>(ImageIO.read(ImageIO.createImageInputStream(in)));
}

From source file:org.carcv.core.model.file.FileCarImage.java

/**
 * Reads a rectangular region from an image in the inStream.
 *
 * @param inStream the InputStream from which to load the image fraction
 * @param rect specifies the rectangular region to load as the image
 * @throws IOException if an error during loading occurs
 *//*w w  w  . j  ava 2  s. com*/
public void loadFragment(InputStream inStream, Rectangle rect) throws IOException {
    ImageInputStream imageStream = ImageIO.createImageInputStream(inStream);
    ImageReader reader = ImageIO.getImageReaders(imageStream).next();
    ImageReadParam param = reader.getDefaultReadParam();

    param.setSourceRegion(rect);
    reader.setInput(imageStream, true, true);

    this.image = reader.read(0, param);

    reader.dispose();
    imageStream.close();
}

From source file:com.shending.support.CompressPic.java

/**
 * ?//from w w  w .  ja  v  a  2s  . c o m
 *
 * @param srcFile
 * @param dstFile
 * @param widthRange
 * @param heightRange
 */
public static void cutSquare(String srcFile, String dstFile, int widthRange, int heightRange, int width,
        int height) {
    int x = 0;
    int y = 0;
    try {
        ImageInputStream iis = ImageIO.createImageInputStream(new File(srcFile));
        Iterator<ImageReader> iterator = ImageIO.getImageReaders(iis);
        ImageReader reader = (ImageReader) iterator.next();
        reader.setInput(iis, true);
        ImageReadParam param = reader.getDefaultReadParam();
        int oldWidth = reader.getWidth(0);
        int oldHeight = reader.getHeight(0);
        int newWidth, newHeight;
        if (width <= oldWidth && height <= oldHeight) {
            newWidth = oldHeight * widthRange / heightRange;
            if (newWidth < oldWidth) {
                newHeight = oldHeight;
                x = (oldWidth - newWidth) / 2;
            } else {
                newWidth = oldWidth;
                newHeight = oldWidth * heightRange / widthRange;
                y = (oldHeight - newHeight) / 2;
            }
            Rectangle rectangle = new Rectangle(x, y, newWidth, newHeight);
            param.setSourceRegion(rectangle);
            BufferedImage bi = reader.read(0, param);
            BufferedImage tag = new BufferedImage((int) width, (int) height, BufferedImage.TYPE_INT_RGB);
            tag.getGraphics().drawImage(bi.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null);
            File file = new File(dstFile);
            ImageIO.write(tag, reader.getFormatName(), file);
        } else {
            BufferedImage bi = reader.read(0, param);
            BufferedImage tag = new BufferedImage((int) width, (int) height, BufferedImage.TYPE_INT_RGB);
            Graphics2D g2d = tag.createGraphics();
            g2d.setColor(Color.WHITE);
            g2d.fillRect(0, 0, tag.getWidth(), tag.getHeight());
            g2d.drawImage(bi.getScaledInstance(bi.getWidth(), bi.getHeight(), Image.SCALE_SMOOTH),
                    (width - bi.getWidth()) / 2, (height - bi.getHeight()) / 2, null);
            g2d.dispose();
            File file = new File(dstFile);
            ImageIO.write(tag, reader.getFormatName(), file);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:org.apache.xmlgraphics.image.loader.impl.AbstractImageSessionContext.java

/** {@inheritDoc} */
public Source newSource(String uri) {
    Source source = resolveURI(uri);
    if (source == null) {
        if (log.isDebugEnabled()) {
            log.debug("URI could not be resolved: " + uri);
        }/*w ww .j ava2  s .co  m*/
        return null;
    }
    if (!(source instanceof StreamSource) && !(source instanceof SAXSource)) {
        //Return any non-stream Sources and let the ImageLoaders deal with them
        return source;
    }

    ImageSource imageSource = null;

    String resolvedURI = source.getSystemId();
    URL url;
    try {
        url = new URL(resolvedURI);
    } catch (MalformedURLException e) {
        url = null;
    }
    File f = /*FileUtils.*/toFile(url);
    if (f != null) {
        boolean directFileAccess = true;
        assert (source instanceof StreamSource) || (source instanceof SAXSource);
        InputStream in = ImageUtil.getInputStream(source);
        if (in == null) {
            try {
                in = new java.io.FileInputStream(f);
            } catch (FileNotFoundException fnfe) {
                log.error("Error while opening file." + " Could not load image from system identifier '"
                        + source.getSystemId() + "' (" + fnfe.getMessage() + ")");
                return null;
            }
        }
        if (in != null) {
            in = ImageUtil.decorateMarkSupported(in);
            try {
                if (ImageUtil.isGZIPCompressed(in)) {
                    //GZIPped stream are not seekable, so buffer/cache like other URLs
                    directFileAccess = false;
                }
            } catch (IOException ioe) {
                log.error("Error while checking the InputStream for GZIP compression."
                        + " Could not load image from system identifier '" + source.getSystemId() + "' ("
                        + ioe.getMessage() + ")");
                return null;
            }
        }

        if (directFileAccess) {
            //Close as the file is reopened in a more optimal way
            IOUtils.closeQuietly(in);
            try {
                // We let the OS' file system cache do the caching for us
                // --> lower Java memory consumption, probably no speed loss
                final ImageInputStream newInputStream = ImageIO.createImageInputStream(f);
                if (newInputStream == null) {
                    log.error("Unable to create ImageInputStream for local file " + f
                            + " from system identifier '" + source.getSystemId() + "'");
                    return null;
                } else {
                    imageSource = new ImageSource(newInputStream, resolvedURI, true);
                }
            } catch (IOException ioe) {
                log.error("Unable to create ImageInputStream for local file" + " from system identifier '"
                        + source.getSystemId() + "' (" + ioe.getMessage() + ")");
            }
        }
    }

    if (imageSource == null) {
        if (ImageUtil.hasReader(source) && !ImageUtil.hasInputStream(source)) {
            //We don't handle Reader instances here so return the Source unchanged
            return source;
        }
        // Got a valid source, obtain an InputStream from it
        InputStream in = ImageUtil.getInputStream(source);
        if (in == null && url != null) {
            try {
                in = url.openStream();
            } catch (Exception ex) {
                log.error("Unable to obtain stream from system identifier '" + source.getSystemId() + "'");
            }
        }
        if (in == null) {
            log.error("The Source that was returned from URI resolution didn't contain"
                    + " an InputStream for URI: " + uri);
            return null;
        }

        try {
            //Buffer and uncompress if necessary
            in = ImageUtil.autoDecorateInputStream(in);
            imageSource = new ImageSource(createImageInputStream(in), source.getSystemId(), false);
        } catch (IOException ioe) {
            log.error("Unable to create ImageInputStream for InputStream" + " from system identifier '"
                    + source.getSystemId() + "' (" + ioe.getMessage() + ")");
        }
    }
    return imageSource;
}