@Override public RenderedImage readFrom( Class<RenderedImage> type, Type genericType, Annotation annotations[], MediaType mediaType, MultivaluedMap<String, String> httpHeaders, InputStream entityStream) throws IOException { if (IMAGE_MEDIA_TYPE.isCompatible(mediaType)) { Iterator<ImageReader> readers = ImageIO.getImageReadersByMIMEType(mediaType.toString()); if (!readers.hasNext()) { throw new IOException("The image-based media type " + mediaType + "is not supported for reading"); } ImageReader reader = readers.next(); ImageInputStream in = ImageIO.createImageInputStream(entityStream); reader.setInput(in, true, true); BufferedImage bi = reader.read(0, reader.getDefaultReadParam()); in.close(); reader.dispose(); return bi; } else { return ImageIO.read(entityStream); } }
public static Point getImageSizeFromStream(InputStream is) { if (!initialized) { // Stops ImageIO from creating temp files when reading images // from input stream. ImageIO.setUseCache(false); initialized = true; } try { ImageInputStream imageStream = ImageIO.createImageInputStream(is); Iterator<ImageReader> readers = ImageIO.getImageReaders(imageStream); if (!readers.hasNext()) return null; ImageReader reader = readers.next(); try { reader.setInput(imageStream); return new Point(reader.getWidth(0), reader.getHeight(0)); } finally { reader.dispose(); } } catch (IOException e) { throw new RuntimeException(e); } }
public InputStream convert(InputStream artifactStream, BufferedImageOp filter) throws Exception { ImageInputStream iis = ImageIO.createImageInputStream(artifactStream); Iterator<ImageReader> iter = ImageIO.getImageReaders(iis); ImageReader reader = iter.next(); String formatName = reader.getFormatName(); artifactStream.reset(); BufferedImage image = ImageIO.read(ImageIO.createImageInputStream(artifactStream)); //before if (formatName.toLowerCase().equals("jpeg") || formatName.toLowerCase().equals("jpg")) { image = stripAlpha(image); } image = filter.filter(image, null); if (formatName.toLowerCase().equals("gif")) { formatName = "png"; } InputStream result = compress(image, formatName); if (formatName.equals("png")) { result = compressPNG(result); } return result; }
@Test public void testGetQualityAltSample1() throws IOException { ImageInputStream stream = ImageIO.createImageInputStream(getClass().getResourceAsStream("/jpeg/exif-rgb-thumbnail-bad-exif-kodak-dc210.jpg")); try { assertEquals(.79f, JPEGQuality.getJPEGQuality(stream), DELTA); } finally { stream.close(); } }
@Test public void testSplit() throws IOException { InputStream inputStream = getClassLoaderResource("/contrib/tiff/multipage.tif").openStream(); File inputFile = File.createTempFile("imageiotest", "tif"); byte[] data = FileUtil.read(inputStream); FileUtil.write(inputFile, data); inputStream.close(); File outputDirectory = Files.createTempDirectory("imageio").toFile(); TIFFUtilities.split(inputFile, outputDirectory); ImageReader reader = ImageIO.getImageReadersByFormatName("TIF").next(); File[] outputFiles = outputDirectory.listFiles(); Assert.assertEquals(3, outputFiles.length); for (File outputFile : outputFiles) { ImageInputStream iis = ImageIO.createImageInputStream(outputFile); reader.setInput(iis); Assert.assertEquals(1, reader.getNumImages(true)); iis.close(); outputFile.delete(); } outputDirectory.delete(); inputFile.delete(); }
throw new RuntimeException(JAI_IMAGE_READER_MESSAGE); ImageReader reader = readers.next(); try (ImageInputStream iis = ImageIO.createImageInputStream(imageFile)) { reader.setInput(iis);
@Override protected EXIFThumbnailReader createReader(final ThumbnailReadProgressListener progressListener, final int imageIndex, final int thumbnailIndex, final ImageInputStream stream) throws IOException { List<JPEGSegment> segments = JPEGSegmentUtil.readSegments(stream, JPEG.APP1, "Exif"); stream.close(); assertNotNull(segments); assertFalse(segments.isEmpty()); TIFFReader reader = new TIFFReader(); InputStream data = segments.get(0).data(); if (data.read() < 0) { throw new AssertionError("EOF!"); } ImageInputStream exifStream = ImageIO.createImageInputStream(data); CompoundDirectory ifds = (CompoundDirectory) reader.read(exifStream); assertEquals(2, ifds.directoryCount()); return new EXIFThumbnailReader(progressListener, ImageIO.getImageReadersByFormatName("JPEG").next(), imageIndex, thumbnailIndex, ifds.getDirectory(1), exifStream); }
ImageReader reader = null; while (readers.hasNext()) { reader = readers.next(); if (reader.canReadRaster()) { break; return null; try { ImageInputStream input = ImageIO.createImageInputStream(in); reader.setInput(input);
@Test(expected = IIOException.class) public void testStreamNonJPEG() throws IOException { ImageInputStream stream = new JPEGSegmentImageInputStream(ImageIO.createImageInputStream(new ByteArrayInputStream(new byte[] {42, 42, 0, 0, 77, 99}))); stream.read(); }
@Test public void testInconsistentSOSBandCountExceedsSOFBandCount() throws IOException { reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/progressive-adobe-sof-bands-dont-match-sos-band-count.jpg")));
if (url != null) { if (name.endsWith(".png")) { ImageInputStream stream = ImageIO.createImageInputStream(url.openStream()); ImageReadParam param = PNG_READER.getDefaultReadParam(); try { PNG_READER.setInput(stream, true, true); result = PNG_READER.read(0, param);
try (ImageInputStream iis = ImageIO.createImageInputStream(encoded)) reader.setInput(iis); ImageReadParam irp = reader.getDefaultReadParam(); irp.setSourceSubsampling(options.getSubsamplingX(), options.getSubsamplingY(), BufferedImage image = reader.read(0, irp); raster = image.getRaster();
/** * FIXME Comment this * * @param in input stream * @param reader image reader * @param imageIndex index * @return {@link IIOImage} * @throws IOException if I/O error occurred */ public static IIOImage readImage(InputStream in, ImageReader reader, int imageIndex) throws IOException { ImageInputStream iis = ImageIO.createImageInputStream(in); reader.setInput(iis, false); return reader.readAll(imageIndex, null); }
private static void readImagesInFile(String pFileName, ImageReader pReader, final Container pContainer) throws IOException { File file = new File(pFileName); if (!file.isFile()) { System.err.println(pFileName + " not found, or is no file"); } pReader.setInput(ImageIO.createImageInputStream(file)); int imageCount = pReader.getNumImages(true); for (int i = 0; i < imageCount; i++) { try { addImage(pContainer, pReader, i); } catch (Exception e) { System.err.println("FileName: " + pFileName); System.err.println("Icon: " + i); e.printStackTrace(); } } }
@Override public RenderedImage readFrom( Class<RenderedImage> type, Type genericType, Annotation annotations[], MediaType mediaType, MultivaluedMap<String, String> httpHeaders, InputStream entityStream) throws IOException { if (IMAGE_MEDIA_TYPE.isCompatible(mediaType)) { Iterator<ImageReader> readers = ImageIO.getImageReadersByMIMEType(mediaType.toString()); if (!readers.hasNext()) { throw new IOException("The image-based media type " + mediaType + "is not supported for reading"); } ImageReader reader = readers.next(); ImageInputStream in = ImageIO.createImageInputStream(entityStream); reader.setInput(in, true, true); BufferedImage bi = reader.read(0, reader.getDefaultReadParam()); in.close(); reader.dispose(); return bi; } else { return ImageIO.read(entityStream); } }
@Test public void testGetQuality() throws IOException { ImageInputStream stream = ImageIO.createImageInputStream(getClass().getResourceAsStream("/jpeg/9788245605525.jpg")); try { assertEquals(.92f, JPEGQuality.getJPEGQuality(stream), DELTA); } finally { stream.close(); } }
ImageInputStream inputTest1 = ImageIO.createImageInputStream(inputFile); File outputTest1 = File.createTempFile("imageiotest", ".tif"); ImageOutputStream iosTest1 = ImageIO.createImageOutputStream(outputTest1); ImageInputStream checkTest1 = ImageIO.createImageInputStream(outputTest1); reader.setInput(checkTest1); for (int i = 0; i < 3; i++) { Node metaData = reader.getImageMetadata(i) .getAsTree(TIFFMedataFormat.SUN_NATIVE_IMAGE_METADATA_FORMAT_NAME); short orientation = ((Number) expression.evaluate(metaData, XPathConstants.NUMBER)).shortValue(); Assert.assertEquals(orientation, TIFFExtension.ORIENTATION_RIGHTTOP); ImageInputStream inputTest2 = ImageIO.createImageInputStream(outputTest1); File outputTest2 = File.createTempFile("imageiotest", ".tif"); ImageOutputStream iosTest2 = ImageIO.createImageOutputStream(outputTest2); ImageInputStream checkTest2 = ImageIO.createImageInputStream(outputTest2); reader.setInput(checkTest2); for (int i = 0; i < 3; i++) { Node metaData = reader.getImageMetadata(i) .getAsTree(TIFFMedataFormat.SUN_NATIVE_IMAGE_METADATA_FORMAT_NAME); short orientation = ((Number) expression.evaluate(metaData, XPathConstants.NUMBER)).shortValue(); Assert.assertEquals(orientation, i == 1 ? TIFFExtension.ORIENTATION_BOTRIGHT : TIFFExtension.ORIENTATION_RIGHTTOP);
try (ImageInputStream input = ImageIO.createImageInputStream(inFile)) { Iterator<ImageReader> readers = ImageIO.getImageReaders(input); ImageReader reader = readers.next(); reader.setInput(input); for (int j = 0; j < reader.getNumImages(true); j++) { IIOImage image = reader.readAll(j, null);
inMemoryStream = new ByteArrayInputStream(IOUtils.toByteArray(artifactStream)); ImageInputStream iis = ImageIO.createImageInputStream(inMemoryStream); Iterator<ImageReader> iter = ImageIO.getImageReaders(iis); ImageReader reader = iter.next(); String formatName = reader.getFormatName(); if (!ArrayUtils.isEmpty(filterFormats)) { responseStream = compressPNG(inMemoryStream); } else { BufferedImage image = ImageIO.read(ImageIO.createImageInputStream(inMemoryStream)); responseStream = compress(image, formatName); if (formatName.toLowerCase().equals("gif")) {
public ImageMetadata getImageMetadata(InputStream artifactStream) throws Exception { ImageMetadata imageMetadata = new ImageMetadata(); ImageInputStream iis = ImageIO.createImageInputStream(artifactStream); Iterator<ImageReader> readers = ImageIO.getImageReaders(iis); if (readers.hasNext()) { ImageReader reader = readers.next(); reader.setInput(iis, true); imageMetadata.setWidth(reader.getWidth(0)); imageMetadata.setHeight(reader.getHeight(0)); } else { throw new Exception("Unable to retrieve image metadata from stream. Are you sure the stream provided is a valid input stream for an image source?"); } return imageMetadata; }