@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); } }
private static BufferedImage readBuffereImage(ImageReader reader, int w, int h) throws IOException { ImageReadParam param = reader.getDefaultReadParam(); int srcWidth = reader.getWidth(0); int srcHeight = reader.getHeight(0); Rectangle rect = null; if ((float) w / h > (float) srcWidth / srcHeight) { h = h * srcWidth / w; w = srcWidth; rect = new Rectangle(0, (srcHeight - h) / 2, w, h); } else { w = w * srcHeight / h; h = srcHeight; rect = new Rectangle((srcWidth - w) / 2, 0, w, h); } param.setSourceRegion(rect); BufferedImage srcBuffered = reader.read(0, param); return srcBuffered; }
@Test public void testColorsVsReference() throws IOException { ImageReader reader = createReader(); TestData data = new TestData(getClassLoaderResource("/ppm/colors.ppm"), new Dimension(3, 2)); reader.setInput(data.getInputStream()); BufferedImage expected = new BufferedImage(3, 2, BufferedImage.TYPE_3BYTE_BGR); expected.setRGB(0, 0, new Color(255, 0, 0).getRGB()); expected.setRGB(1, 0, new Color(0, 255, 0).getRGB()); expected.setRGB(2, 0, new Color(0, 0, 255).getRGB()); expected.setRGB(0, 1, new Color(255, 255, 0).getRGB()); expected.setRGB(1, 1, new Color(255, 255, 255).getRGB()); expected.setRGB(2, 1, new Color(0, 0, 0).getRGB()); assertImageDataEquals("Images differ from reference", expected, reader.read(0)); }
@Test public void testReadNoInputWithParam() { ImageReader reader = createReader(); // Do not set input BufferedImage image = null; try { image = reader.read(0, reader.getDefaultReadParam()); fail("Read image with no input"); } catch (IllegalStateException ignore) { } catch (IOException e) { failBecause("Image could not be read", e); } assertNull(image); reader.dispose(); }
@Test public void testReadNoInput() { ImageReader reader = createReader(); // Do not set input BufferedImage image = null; try { image = reader.read(0); fail("Read image with no input"); } catch (IllegalStateException ignore) { } catch (IOException e) { failBecause("Image could not be read", e); } assertNull(image); reader.dispose(); }
public static void main(final String[] pArgs) throws IOException { ImageReader reader = new PICTImageReader(new PICTImageReaderSpi()); for (String arg : pArgs) { File file = new File(arg); try { ImageInputStream input = ImageIO.createImageInputStream(file); String title = file.getName(); System.out.println("canRead: " + reader.getOriginatingProvider().canDecodeInput(input)); reader.setInput(input); // BufferedImage image = reader.getImageTypes(0).next().createBufferedImage(reader.getWidth(0), reader.getHeight(0)); // ImageReadParam param = reader.getDefaultReadParam(); // param.setDestination(image); long start = System.currentTimeMillis(); BufferedImage image = reader.read(0); System.out.println("time: " + (System.currentTimeMillis() - start)); showIt(image, title); System.out.println("image = " + image); } catch (IOException e) { System.err.println("Could not read " + file.getAbsolutePath() + ": " + e); } } } }
try { reader = (ImageReader)iter.next(); ImageReadParam param = reader.getDefaultReadParam(); reader.setInput(stream, true, true); Iterator<ImageTypeSpecifier> imageTypes = reader.getImageTypes(0); while (imageTypes.hasNext()) { bufferedImage = reader.read(0, param); if (null != bufferedImage) break; } catch (Exception e) {
@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 testRGBAVsReference() throws IOException { ImageReader reader = createReader(); TestData data = new TestData(getClassLoaderResource("/pam/rgba.pam"), new Dimension(4, 2)); reader.setInput(data.getInputStream()); BufferedImage expected = new BufferedImage(4, 2, BufferedImage.TYPE_4BYTE_ABGR); expected.setRGB(0, 0, new Color(0, 0, 255).getRGB()); expected.setRGB(1, 0, new Color(0, 255, 0).getRGB()); expected.setRGB(2, 0, new Color(255, 0, 0).getRGB()); expected.setRGB(3, 0, new Color(255, 255, 255).getRGB()); expected.setRGB(0, 1, new Color(0, 0, 255, 127).getRGB()); expected.setRGB(1, 1, new Color(0, 255, 0, 127).getRGB()); expected.setRGB(2, 1, new Color(255, 0, 0, 127).getRGB()); expected.setRGB(3, 1, new Color(255, 255, 255, 127).getRGB()); assertImageDataEquals("Images differ from reference", expected, reader.read(0)); }
ImageInputStream stream = ImageIO.createImageInputStream(input); reader.setInput(stream); try { long begin = System.currentTimeMillis(); BufferedImage image = reader.read(i); imagesRead++;
protected void assertReadWithSourceRegionParamEqualImage(final Rectangle r, final TestData data, final int imageIndex) throws IOException { ImageReader reader = createReader(); reader.setInput(data.getInputStream()); ImageReadParam param = reader.getDefaultReadParam(); final BufferedImage roi = reader.read(imageIndex, param).getSubimage(r.x, r.y, r.width, r.height); final BufferedImage image = reader.read(imageIndex, param);
@Override public void process(final InputStream rawIn, final OutputStream out) throws IOException { try (final BufferedInputStream in = new BufferedInputStream(rawIn)) { final ImageInputStream iis = ImageIO.createImageInputStream(in); if (iis == null) { throw new ProcessException("FlowFile is not in a valid format"); final ImageReader reader = readers.next(); final String formatName = reader.getFormatName(); reader.setInput(iis, true); final BufferedImage image = reader.read(0);
@Test public void testNotBadCaching() throws IOException { T reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); BufferedImage one = reader.read(0); BufferedImage two = reader.read(0); assertNotSame("Multiple reads return same (mutable) image", one, two); one.setRGB(0, 0, Color.BLUE.getRGB()); two.setRGB(0, 0, Color.RED.getRGB()); assertTrue(one.getRGB(0, 0) != two.getRGB(0, 0)); reader.dispose(); }
public static BufferedImage loadImageByMimeType(Path file) throws IOException { String mime = Files.probeContentType(file); Iterable<ImageReader> iter = new IterableFacade<>(ImageIO.getImageReadersByMIMEType(mime)); for (ImageReader reader : iter) { InputStream in = Files.newInputStream(file); try (ImageInputStream ii = ImageIO.createImageInputStream(in);) { reader.setInput(ii); return reader.read(0); } } throw new IOException("No ImageReader found for the file: " + file); }