@Override public String preferredOutputFormatName() { String fileExtension = getExtension(destinationFile); if (fileExtension != null) { Iterator<ImageReader> rIter = ImageIO.getImageReadersBySuffix(fileExtension); if (rIter.hasNext()) { try { return rIter.next().getFormatName(); } catch (IOException e) { return ThumbnailParameter.ORIGINAL_FORMAT; } } } return outputFormat; }
Iterator<ImageReader> rIter = ImageIO.getImageReadersBySuffix(fileExtension);
public Object load(AssetInfo info) throws IOException { if (ImageIO.getImageReadersBySuffix(info.getKey().getExtension()) != null){ boolean flip = ((TextureKey) info.getKey()).isFlipY(); InputStream in = null; try { in = info.openStream(); Image img = load(in, flip); if (img == null){ throw new AssetLoadException("The given image cannot be loaded " + info.getKey()); } return img; } finally { if (in != null){ in.close(); } } }else{ throw new AssetLoadException("The extension " + info.getKey().getExtension() + " is not supported"); } } }
private boolean hasReaderForSuffix(String pSuffix) { if (knownSuffixes.get(pSuffix) == Boolean.TRUE) { return true; } try { // Cahce lookup Iterator iterator = ImageIO.getImageReadersBySuffix(pSuffix); if (iterator.hasNext()) { knownSuffixes.put(pSuffix, Boolean.TRUE); return true; } else { knownSuffixes.put(pSuffix, Boolean.FALSE); return false; } } catch (IllegalArgumentException iae) { return false; } }
protected void assertProviderInstalledForSuffix(final String pType, final Class<? extends ImageReader> pReaderClass) { assertProviderInstalled0(pType, pReaderClass, ImageIO.getImageReadersBySuffix(pType)); }
private Iterator<ImageReader> getImageReaders(final URI uri) { String path = uri.isOpaque() ? uri.getSchemeSpecificPart() : uri.getRawPath(); final int suffixPos = path.lastIndexOf('.') + 1; if (suffixPos == 0) { final List<ImageReader> empty = Collections.emptyList(); return empty.iterator(); } final String suffix = path.substring(suffixPos); final Iterator<ImageReader> readers = ImageIO.getImageReadersBySuffix(suffix); return readers; }
@Override public Object makeObject() throws Exception { ImageInputStream iis = null; ImageReader reader = null; Iterator<ImageReader> readers = getImageReadersBySuffix( "tiff" ); while ( readers.hasNext() && !( reader instanceof TIFFImageReader ) ) { reader = readers.next(); } iis = createImageInputStream( file ); // already checked in provider reader.setInput( iis ); return reader; }
private boolean hasReaderForSuffix(String pSuffix) { if (knownSuffixes.get(pSuffix) == Boolean.TRUE) { return true; } try { // Cahce lookup Iterator iterator = ImageIO.getImageReadersBySuffix(pSuffix); if (iterator.hasNext()) { knownSuffixes.put(pSuffix, Boolean.TRUE); return true; } else { knownSuffixes.put(pSuffix, Boolean.FALSE); return false; } } catch (IllegalArgumentException iae) { return false; } }
private boolean hasReaderForSuffix(String pSuffix) { if (mKnownSuffixes.get(pSuffix) == Boolean.TRUE) { return true; } try { // Cahce lookup Iterator iterator = ImageIO.getImageReadersBySuffix(pSuffix); if (iterator.hasNext()) { mKnownSuffixes.put(pSuffix, Boolean.TRUE); return true; } else { mKnownSuffixes.put(pSuffix, Boolean.FALSE); return false; } } catch (IllegalArgumentException iae) { return false; } }
/** * Returns an ImageReader given the input file * * @param file * @return * @throws IOException */ public static ImageReader getImageReader(File file) throws IOException { String ext = FilenameUtils.getExtension(file.getName().toLowerCase()); ImageReader reader = null; Iterator<ImageReader> imageReaders = ImageIO .getImageReadersBySuffix(ext); if (imageReaders.hasNext()) { reader = imageReaders.next(); ImageInputStream stream = ImageIO.createImageInputStream(file); reader.setInput(stream); } return reader; }
private static boolean imagemEhGifAnimado(File arquivo) throws IOException { ImageReader leitorImagem = ImageIO.getImageReadersBySuffix("GIF").next(); try (final ImageInputStream streamImagem = ImageIO.createImageInputStream(arquivo)) { leitorImagem.setInput(streamImagem); return leitorImagem.getNumImages(true) > 1; } finally { leitorImagem.dispose(); } }
protected Collection<BufferedImage> loadImages(ImageInputStream in) { List<BufferedImage> images = new ArrayList<>(); try { if (animated) { ImageReader reader = ImageIO.getImageReadersBySuffix("GIF").next(); reader.setInput(in); frameTimes = new ArrayList<>(); lastFrameChange = System.currentTimeMillis(); loadGIFImages(reader, images); reader.dispose(); } else { BufferedImage frame = ImageIO.read(in); if (frame != null) { images.add(frame); } } } catch (Exception ex) { ex.printStackTrace(); } return images; }
@Override public String preferredOutputFormatName() { String fileExtension = getExtension(destinationFile); if (fileExtension != null) { Iterator<ImageReader> rIter = ImageIO.getImageReadersBySuffix(fileExtension); if (rIter.hasNext()) { try { return rIter.next().getFormatName(); } catch (IOException e) { return ThumbnailParameter.ORIGINAL_FORMAT; } } } return outputFormat; }
private static Dimension getImageDimension(File imgFile) throws IOException { int pos = imgFile.getName().lastIndexOf("."); if (pos == -1) throw new IOException("No extension for file: " + imgFile.getAbsolutePath()); String suffix = imgFile.getName().substring(pos + 1); Iterator<ImageReader> iter = ImageIO.getImageReadersBySuffix(suffix); while (iter.hasNext()) { ImageReader reader = iter.next(); try { ImageInputStream stream = new FileImageInputStream(imgFile); reader.setInput(stream); int width = reader.getWidth(reader.getMinIndex()); int height = reader.getHeight(reader.getMinIndex()); return new Dimension(width, height); } catch (IOException e) { LOG.log(Level.WARNING, "Error reading: " + imgFile.getAbsolutePath(), e); } finally { reader.dispose(); } } throw new IOException("Not a known image file: " + imgFile.getAbsolutePath()); }
/** * Returns an {@link Iterator} containing all currently registered {@link ImageReader}s * that claim to be able to decode the image. The default implementation returns * <code>ImageIO.getImageReadersByFormatName({@link #formatName})</code>. * * @param input The input source. */ protected Iterator getImageReaders(final Object input) { if (formatName != null) { return ImageIO.getImageReadersByFormatName(formatName); } final File file = asFile(input); if (file != null) { final String filename = file.getName(); final int separator = filename.lastIndexOf('.'); if (separator >= 0) { final String extension = filename.substring(separator + 1); return ImageIO.getImageReadersBySuffix(extension); } } return ImageIO.getImageReaders(input); }
protected void assertProviderInstalledForSuffix(final String pType, final Class<? extends ImageReader> pReaderClass) { assertProviderInstalled0(pType, pReaderClass, ImageIO.getImageReadersBySuffix(pType)); }
protected void assertProviderInstalledForSuffix(final String pType, final Class<? extends ImageReader> pReaderClass) { assertProviderInstalled0(pType, pReaderClass, ImageIO.getImageReadersBySuffix(pType)); }
/** Animate layers */ @org.junit.Test public void testAnimatorLayers() throws Exception { final String layerName = MockData.BASIC_POLYGONS.getPrefix() + ":" + MockData.BASIC_POLYGONS.getLocalPart(); String requestURL = "cite/wms/animate?&aparam=layers&avalues=MapNeatline,Buildings,Lakes"; // check we got a gif MockHttpServletResponse resp = getAsServletResponse(requestURL); assertEquals("image/gif", resp.getContentType()); // check it has three frames ByteArrayInputStream bis = getBinaryInputStream(resp); ImageInputStream iis = ImageIO.createImageInputStream(bis); ImageReader reader = ImageIO.getImageReadersBySuffix("gif").next(); reader.setInput(iis); assertEquals(3, reader.getNumImages(true)); }
public Object load(AssetInfo info) throws IOException { if (ImageIO.getImageReadersBySuffix(info.getKey().getExtension()) != null){ boolean flip = ((TextureKey) info.getKey()).isFlipY(); InputStream in = null; try { in = info.openStream(); Image img = load(in, flip); if (img == null){ throw new AssetLoadException("The given image cannot be loaded " + info.getKey()); } return img; } finally { if (in != null){ in.close(); } } }else{ throw new AssetLoadException("The extension " + info.getKey().getExtension() + " is not supported"); } } }
@Test public void testTimeListAnimated() throws Exception { // adding a extra elevation that is simply not there, should not break setupVectorDimension( ResourceInfo.TIME, "time", DimensionPresentation.LIST, null, null, null); MockHttpServletResponse response = getAsServletResponse( "wms?service=WMS&version=1.1.1&request=GetMap" + "&bbox=-180,-90,180,90&styles=&width=80&height=40&srs=EPSG:4326" + "&layers=" + getLayerId(V_TIME_ELEVATION) + "&time=2011-05-02,2011-05-04,2011-05-10&format=" + GIFMapResponse.IMAGE_GIF_SUBTYPE_ANIMATED); // check we did not get a service exception assertEquals("image/gif", response.getContentType()); // check it is a animated gif withthree frames ByteArrayInputStream bis = getBinaryInputStream(response); ImageInputStream iis = ImageIO.createImageInputStream(bis); ImageReader reader = ImageIO.getImageReadersBySuffix("gif").next(); reader.setInput(iis); assertEquals(3, reader.getNumImages(true)); }