List of usage examples for javax.imageio ImageIO createImageInputStream
public static ImageInputStream createImageInputStream(Object input) throws IOException
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()); } } }