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:tilt.image.Picture.java

/**
 * Get the format of the picture/* w w w  .j  a  v a2s . c o  m*/
 * @return a mime type
 * @throws ImageException 
 */
final String getFormatName() throws ImageException {
    try {
        ImageInputStream iis = ImageIO.createImageInputStream(orig);
        Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
        if (!iter.hasNext()) {
            throw new RuntimeException("No readers found for " + id);
        }
        ImageReader reader = iter.next();
        iis.close();
        return reader.getFormatName();
    } catch (Exception e) {
        throw new ImageException(e);
    }
}

From source file:org.gmdev.pdftrick.utils.CustomExtraImgReader.java

/**
 * Read a JPG image with CMYK ICC profile
 * @param imageByteArray//  www  . java  2  s  .  c o m
 * @return The BufferedImage obj
 * @throws IOException
 * @throws ImageReadException
 */
public static BufferedImage readCMYK_JPG(byte[] imageByteArray) throws IOException, ImageReadException {

    colorType = COLOR_TYPE_RGB;
    hasAdobeMarker = false;

    InputStream in = new ByteArrayInputStream(imageByteArray);
    ImageInputStream stream = ImageIO.createImageInputStream(in);
    Iterator<ImageReader> iter = ImageIO.getImageReaders(stream);

    ImageReader reader = iter.next();
    reader.setInput(stream);

    BufferedImage image = null;
    ICC_Profile profile = null;

    colorType = COLOR_TYPE_CMYK;
    checkAdobeMarker(imageByteArray);
    profile = Imaging.getICCProfile(imageByteArray);

    WritableRaster raster = (WritableRaster) reader.readRaster(0, null);

    if (colorType == COLOR_TYPE_YCCK) {
        convertYcckToCmyk(raster);
    }
    if (hasAdobeMarker) {
        //convertInvertedColors(raster);
    }
    image = convertCmykToRgb(raster, profile);

    in.close();
    reader.dispose();
    return image;
}

From source file:de.javagl.jgltf.model.io.GltfUtils.java

/**
 * Tries to find an <code>ImageReader</code> that is capable of reading
 * the given image data. The returned image reader will be initialized
 * by passing an ImageInputStream that is created from the given data
 * to its <code>setInput</code> method. The caller is responsible for 
 * disposing the returned image reader.//from ww  w  . j  a  v  a 2  s.co  m
 *  
 * @param imageData The image data
 * @return The image reader
 * @throws IOException If no matching image reader can be found
 */
@SuppressWarnings("resource")
private static ImageReader findImageReader(ByteBuffer imageData) throws IOException {
    InputStream inputStream = Buffers.createByteBufferInputStream(imageData.slice());
    ImageInputStream imageInputStream = ImageIO.createImageInputStream(inputStream);
    Iterator<ImageReader> imageReaders = ImageIO.getImageReaders(imageInputStream);
    if (imageReaders.hasNext()) {
        ImageReader imageReader = imageReaders.next();
        imageReader.setInput(imageInputStream);
        return imageReader;
    }
    throw new IOException("Could not find ImageReader for image data");
}

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

protected ImageInputStream createImageInputStream(InputStream in) throws IOException {
    ImageInputStream iin = ImageIO.createImageInputStream(in);
    return (ImageInputStream) Proxy.newProxyInstance(ImageInputStream.class.getClassLoader(),
            new Class[] { ImageInputStream.class }, new ObservingImageInputStreamInvocationHandler(iin, in));
}

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

public static void cut(String srcFile, String dstFile, int widthRange, int heightRange) {
    int x = 0;/*from  w  w  w.j a  v  a2 s. c  o  m*/
    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;
        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);
        File file = new File(dstFile);
        ImageIO.write(bi, reader.getFormatName(), file);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

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

/**
 * This method return image and tile information.
 * /* w  w w.  j a v  a2  s  .c om*/
 * EXAMPLE OUTPUT : IIP:1.0 Max-size:1832 2448 Tile-size:128 128
 * Resolution-number:6
 * 
 * @param httpServletRequest
 * @param response
 * 
 */
private void generateInformationsTiledImage(HttpServletRequest httpServletRequest,
        HttpServletResponse httpServletResponse) {
    File imageFile = new File(ApplicationPropertyManager.getApplicationProperty("iipimage.image.path")
            + httpServletRequest.getParameter("FIF"));
    ImageInputStream imageInputStream = null;
    Integer imageWidth = new Integer(0);
    Integer imageHeight = new Integer(0);
    Integer tileWidth = new Integer(0);
    Integer tileHeight = new Integer(0);
    Integer resolutionNumber = new Integer(0);

    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);
            if (readers.hasNext()) {
                ImageReader reader = readers.next();
                reader.setInput(imageInputStream, false, true);
                tileWidth = reader.getTileWidth(0);
                tileHeight = reader.getTileHeight(0);
                imageWidth = reader.getWidth(0);
                imageHeight = reader.getHeight(0);
                // Last level is not readable, I don't know why but i remove
                // this
                resolutionNumber = reader.getNumImages(true);
            }
        }
    } catch (IOException ioException) {
        logger.debug(ioException);
    } finally {
        try {
            if (imageInputStream != null) {
                imageInputStream.close();
            }
        } catch (IOException ioException) {
        }

        try {
            httpServletResponse.setContentType("text/plain");
            ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream();
            servletOutputStream.println("IIP:1.0");
            servletOutputStream.println("Max-size:" + imageWidth + " " + imageHeight);
            servletOutputStream.println("Tile-size:" + tileWidth + " " + tileHeight);
            servletOutputStream.println("Resolution-number:" + resolutionNumber);
            servletOutputStream.println("");
            httpServletResponse.getOutputStream().flush();
        } catch (IOException ioException) {
            logger.error(ioException);
        }
    }
}

From source file:edu.ku.brc.specify.datamodel.busrules.AttachmentBusRules.java

protected void addImageAttributeIfNecessary() {
    if (browser != null) {
        Integer width = null;//from  w w w.j  a  v a2 s. c om
        Integer height = null;
        File file = new File(browser.getValue().toString());
        String mimeType = file == null ? null : AttachmentUtils.getMimeType(file.getName());
        boolean isImage = mimeType != null && mimeType.startsWith("image");
        if (isImage) {
            try {
                ImageInputStream iis = ImageIO.createImageInputStream(file);
                Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);

                if (readers.hasNext()) {
                    // pick the first available ImageReader
                    ImageReader reader = readers.next();
                    // attach source to the reader
                    reader.setInput(iis, true);

                    // read metadata of first image
                    //                      IIOMetadata metadata = reader.getImageMetadata(0);

                    width = reader.getWidth(0);
                    height = reader.getHeight(0);
                }
            } catch (IOException ex) {
                //XXX does this execption necessarily mean the file is bad?
                //XXX throw or log this exception
                ex.printStackTrace();
            }
        }
        //MultiView mvobj = formViewObj.getKids().get(0);
        FormViewObj aiafv = imageAttributeMultiView == null ? null
                : imageAttributeMultiView.getCurrentViewAsFormViewObj();
        if (aiafv != null) {
            //hide add/delete buttons. 
            aiafv.getNewRecBtn().setVisible(false);
            aiafv.getDelRecBtn().setVisible(false);
            if (isImage) {
                if (aiafv.getDataObj() == null) {
                    aiafv.getNewRecBtn().doClick();
                }
                System.out.println(browser.getValue() + "height " + height + " width " + width);
                try {
                    aiafv.setDataIntoUIComp("height", height);
                    aiafv.setControlChanged("height");
                    aiafv.setDataIntoUIComp("width", width);
                    aiafv.setControlChanged("width");
                } catch (Exception e) {
                    log.error("Unable set image attribute data. Controls may be missing from form definition");
                }
            } else {
                if (aiafv.getDataObj() != null) {
                    //delete the imageAttribute rec
                    //XXX suppress "confirm delete" dlg?
                    aiafv.getDelRecBtn().doClick();
                }
            }
        }
        setupImageAttributeView();
    }
}

From source file:org.jamwiki.parser.image.ImageProcessor.java

/**
 * Retrieve image dimensions.  This method simply reads headers so it should perform
 * relatively fast.//www. j  av  a  2  s.co m
 */
protected static Dimension retrieveImageDimensions(File imageFile) throws IOException {
    long start = System.currentTimeMillis();
    if (!imageFile.exists()) {
        logger.info("No file found while determining image dimensions: " + imageFile.getAbsolutePath());
        return null;
    }
    ImageInputStream iis = null;
    Dimension dimensions = null;
    ImageReader reader = null;
    // use a FileInputStream and make sure it gets closed to prevent unclosed file
    // errors on some operating systems
    FileInputStream fis = null;
    try {
        fis = new FileInputStream(imageFile);
        iis = ImageIO.createImageInputStream(fis);
        Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
        if (readers.hasNext()) {
            reader = readers.next();
            reader.setInput(iis, true);
            dimensions = new Dimension(reader.getWidth(0), reader.getHeight(0));
        }
    } finally {
        if (reader != null) {
            reader.dispose();
        }
        if (iis != null) {
            try {
                iis.close();
            } catch (IOException e) {
                // ignore
            }
        }
        IOUtils.closeQuietly(fis);
    }
    if (logger.isDebugEnabled()) {
        long execution = (System.currentTimeMillis() - start);
        logger.debug("Image dimension lookup for " + imageFile.getAbsolutePath() + " took "
                + (execution / 1000.000) + " s");
    }
    return dimensions;
}

From source file:net.algart.simagis.imageio.IIOMetadataToJsonConverter.java

private JSONObject extendedReadExif(InputStream inputStream) throws IOException, JSONException {
    assert inputStream != null;
    ImageInputStream iis = ImageIO.createImageInputStream(inputStream);
    Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
    try {/*  w w w.  ja v  a2s.  c om*/
        if (!readers.hasNext()) {
            return null; // no readers to read such "Exif"
        }
        ImageReader reader = readers.next();
        try {
            reader.setInput(iis);
            return toJson(reader.getImageMetadata(0));
        } finally {
            reader.dispose();
        }
    } finally {
        iis.close();
    }
}

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.
 */// w w w.j  av  a2s  .  co m
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());
        }
    }

}