@Test public void testReaderForWriter() { ImageWriter writer = createImageWriter(); ImageReader reader = ImageIO.getImageReader(writer); assertNotNull(reader); assertEquals(writer.getClass().getPackage(), reader.getClass().getPackage()); }
@Test public void testWriteRead() throws IOException { ImageWriter writer = createImageWriter(); ImageReader reader = ImageIO.getImageReader(writer); assumeNotNull(reader); for (RenderedImage testData : getTestData()) { ByteArrayOutputStream buffer = new ByteArrayOutputStream(); try (ImageOutputStream stream = ImageIO.createImageOutputStream(buffer)) { writer.setOutput(stream); writer.write(drawSomething((BufferedImage) testData)); } try (ImageInputStream stream = ImageIO.createImageInputStream(new ByteArrayInputStream(buffer.toByteArray()))) { reader.setInput(stream); BufferedImage image = reader.read(0); assertNotNull(image); assertImageDataEquals("Images differ for " + testData, (BufferedImage) testData, image); } } } }
@Test public void testTranscodeWithMetadataRGBtoRGB() throws IOException { ImageWriter writer = createImageWriter(); ImageReader reader = ImageIO.getImageReader(writer); ByteArrayOutputStream stream = transcode(reader, getClassLoaderResource("/jpeg/jfif-jfxx-thumbnail-olympus-d320l.jpg"), writer, ColorSpace.TYPE_RGB); // TODO: Validate that correct warnings are emitted (if any are needed?) reader.reset(); reader.setInput(new ByteArrayImageInputStream(stream.toByteArray())); BufferedImage image = reader.read(0); assertNotNull(image); }
@Test public void testTranscodeWithMetadataCMYKtoCMYK() throws IOException { ImageWriter writer = createImageWriter(); ImageReader reader = ImageIO.getImageReader(writer); ByteArrayOutputStream stream = transcode(reader, getClassLoaderResource("/jpeg/cmyk-sample-multiple-chunk-icc.jpg"), writer, ColorSpace.TYPE_CMYK); reader.reset(); reader.setInput(new ByteArrayImageInputStream(stream.toByteArray())); BufferedImage image = reader.read(0); assertNotNull(image); assertEquals(100, image.getWidth()); assertEquals(100, image.getHeight()); IIOMetadata metadata = reader.getImageMetadata(0); IIOMetadataNode standard = (IIOMetadataNode) metadata.getAsTree(IIOMetadataFormatImpl.standardMetadataFormatName); NodeList colorSpaceType = standard.getElementsByTagName("ColorSpaceType"); assertEquals(1, colorSpaceType.getLength()); assertEquals("CMYK", ((IIOMetadataNode) colorSpaceType.item(0)).getAttribute("name")); }
writer.setOutput(null); if (reader == null) { reader = ImageIO.getImageReader(writer); assertNotNull("The ImageWriter does not declare a compatible reader.", reader);
@Test public void testReaderForWriter() { ImageWriter writer = createImageWriter(); ImageReader reader = ImageIO.getImageReader(writer); assertNotNull(reader); assertEquals(writer.getClass().getPackage(), reader.getClass().getPackage()); }
@Test public void testTranscodeWithMetadataRGBtoRGB() throws IOException { ImageWriter writer = createImageWriter(); ImageReader reader = ImageIO.getImageReader(writer); ByteArrayOutputStream stream = transcode(reader, getClassLoaderResource("/jpeg/jfif-jfxx-thumbnail-olympus-d320l.jpg"), writer, ColorSpace.TYPE_RGB); // TODO: Validate that correct warnings are emitted (if any are needed?) reader.reset(); reader.setInput(new ByteArrayImageInputStream(stream.toByteArray())); BufferedImage image = reader.read(0); assertNotNull(image); }
@Test public void testTranscodeWithMetadataCMYKtoCMYK() throws IOException { ImageWriter writer = createImageWriter(); ImageReader reader = ImageIO.getImageReader(writer); ByteArrayOutputStream stream = transcode(reader, getClassLoaderResource("/jpeg/cmyk-sample-multiple-chunk-icc.jpg"), writer, ColorSpace.TYPE_CMYK); reader.reset(); reader.setInput(new ByteArrayImageInputStream(stream.toByteArray())); BufferedImage image = reader.read(0); assertNotNull(image); assertEquals(100, image.getWidth()); assertEquals(100, image.getHeight()); IIOMetadata metadata = reader.getImageMetadata(0); IIOMetadataNode standard = (IIOMetadataNode) metadata.getAsTree(IIOMetadataFormatImpl.standardMetadataFormatName); NodeList colorSpaceType = standard.getElementsByTagName("ColorSpaceType"); assertEquals(1, colorSpaceType.getLength()); assertEquals("CMYK", ((IIOMetadataNode) colorSpaceType.item(0)).getAttribute("name")); }