List of usage examples for javax.imageio ImageIO getImageReadersBySuffix
public static Iterator<ImageReader> getImageReadersBySuffix(String fileSuffix)
From source file:org.olat.core.commons.services.image.spi.ImageHelperImpl.java
private static SizeAndBufferedImage getImage(ImageInputStream stream, String suffix) { Iterator<ImageReader> iter = ImageIO.getImageReadersBySuffix(suffix); if (iter.hasNext()) { ImageReader reader = iter.next(); try {// ww w. j ava2s.com reader.setInput(stream, true, true); int width = reader.getWidth(reader.getMinIndex()); int height = reader.getHeight(reader.getMinIndex()); Size size = new Size(width, height, false); SizeAndBufferedImage all = new SizeAndBufferedImage(size, null); int readerMinIndex = reader.getMinIndex(); ImageReadParam param = reader.getDefaultReadParam(); Iterator<ImageTypeSpecifier> imageTypes = reader.getImageTypes(0); while (imageTypes.hasNext()) { try { ImageTypeSpecifier imageTypeSpecifier = imageTypes.next(); int bufferedImageType = imageTypeSpecifier.getBufferedImageType(); if (bufferedImageType == BufferedImage.TYPE_BYTE_GRAY) { param.setDestinationType(imageTypeSpecifier); } all.setImage(reader.read(readerMinIndex, param)); return all; } catch (IllegalArgumentException e) { log.warn(e.getMessage(), e); } } } catch (IOException e) { log.error(e.getMessage(), e); } finally { reader.dispose(); } } else { log.error("No reader found for given format: " + suffix, null); } return null; }
From source file:org.onehippo.forge.gallerymagick.core.command.ScalrProcessorUtils.java
/** * Detects the {@code sourceFile} and returns the size dimension from it. * @param sourceFile source image file// w w w.j ava2s. c om * @return Detects the {@code sourceFile} and returns the size dimension from it * @throws IOException if IO exception occurs */ public static ImageDimension identifyDimension(File sourceFile) throws IOException { ImageDimension dimension = null; String extension = FilenameUtils.getExtension(sourceFile.getName()); Iterator<ImageReader> it = ImageIO.getImageReadersBySuffix(extension); if (!it.hasNext()) { throw new IllegalArgumentException("Unsupported file name extension: " + sourceFile); } ImageReader reader = null; try { reader = getImageReader(sourceFile); int width = reader.getWidth(reader.getMinIndex()); int height = reader.getHeight(reader.getMinIndex()); dimension = ImageDimension.from(width, height); } finally { if (reader != null) { reader.dispose(); } } return dimension; }
From source file:org.onehippo.forge.gallerymagick.core.command.ScalrProcessorUtils.java
/** * Creates and returns an {@link ImageReader} instance from the {@code sourceFile}. * @param sourceFile source file//from w ww .j ava2 s . c o m * @return an {@link ImageReader} instance * @throws IOException if IOException occurs */ private static ImageReader getImageReader(File sourceFile) throws IOException { ImageReader reader = null; String extension = FilenameUtils.getExtension(sourceFile.getName()); Iterator<ImageReader> it = ImageIO.getImageReadersBySuffix(extension); if (it.hasNext()) { reader = it.next(); ImageInputStream input = new FileImageInputStream(sourceFile); reader.setInput(input); } return reader; }
From source file:org.paxle.gui.impl.MenuManager.java
@Override protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException { if (req.getParameter("icon") != null) { String iconURL = req.getParameter("icon"); BufferedImage img = null; String fileSuffix = null; int idx = iconURL.lastIndexOf("."); if (idx != -1) fileSuffix = iconURL.substring(idx + 1); if (fileSuffix != null) { Iterator<ImageReader> readers = ImageIO.getImageReadersBySuffix(fileSuffix); while (readers.hasNext() && img == null) { ImageReader reader = readers.next(); InputStream input = null; try { input = new URL(iconURL).openStream(); reader.setInput(ImageIO.createImageInputStream(input)); img = reader.read(0); } catch (Exception e) { this.log("Unable to read image from " + iconURL, e); } finally { if (input != null) input.close();//from www .jav a2 s. c om } } } else { img = ImageIO.read(new URL(iconURL)); } if (img != null) { response.setHeader("Content-Type", "image/png"); ImageIO.write(img, "png", response.getOutputStream()); } else { response.sendError(404); } } }
From source file:org.photovault.image.ImageIOImage.java
/** * Get a proper image reader for a file based on file name extension. * @param f The file/* w w w. j av a 2 s. c o m*/ * @return Correct Reader or <CODE>null</CODE> if no proper reader is found. */ static private ImageReader getImageReader(File f) { ImageReader ret = null; if (f != null) { String fname = f.getName(); int lastDotPos = fname.lastIndexOf("."); if (lastDotPos > 0 && lastDotPos < fname.length() - 1) { String suffix = fname.substring(lastDotPos + 1); Iterator readers = ImageIO.getImageReadersBySuffix(suffix); if (readers.hasNext()) { ret = (ImageReader) readers.next(); } } } return ret; }
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. *///from w ww. java 2s . c om 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()); } } }