Java Code Examples for javax.imageio.ImageIO#getImageReader()
The following examples show how to use
javax.imageio.ImageIO#getImageReader() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RGBImageTest.java From jdk8u_jdk with GNU General Public License v2.0 | 5 votes |
protected void doTest() throws IOException { BufferedImage biSrc = getSrc(); ImageWriter writer = ImageIO.getImageWritersByFormatName("GIF").next(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageOutputStream ios = ImageIO.createImageOutputStream(baos); writer.setOutput(ios); ImageWriteParam writeParam = writer.getDefaultWriteParam(); IIOMetadata imageMetadata = writer.getDefaultImageMetadata(new ImageTypeSpecifier(biSrc), writeParam); IIOMetadata streamMetadata = writer.getDefaultStreamMetadata(writeParam); IIOImage iioImg = new IIOImage(biSrc, null, imageMetadata); writer.write(streamMetadata, iioImg, writeParam); ios.close(); ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); ImageInputStream iis = ImageIO.createImageInputStream(bais); ImageReader reader = ImageIO.getImageReader(writer); reader.setInput(iis); BufferedImage dst = reader.read(0); // do test int x = dx / 2; int y = height / 2; for (int i = 0; i < usedColors.length; i++) { int dstRgb = dst.getRGB(x, y); System.out.println("dstColor: " + Integer.toHexString(dstRgb)); int srcRgb = usedColors[i].getRGB(); System.out.println("srcColor: " + Integer.toHexString(srcRgb)); if (dstRgb != srcRgb) { throw new RuntimeException("wrong color " + i + ": " + Integer.toHexString(dstRgb)); } x += dx; } }
Example 2
Source File: RGBImageTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
protected void doTest() throws IOException { BufferedImage biSrc = getSrc(); ImageWriter writer = ImageIO.getImageWritersByFormatName("GIF").next(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageOutputStream ios = ImageIO.createImageOutputStream(baos); writer.setOutput(ios); ImageWriteParam writeParam = writer.getDefaultWriteParam(); IIOMetadata imageMetadata = writer.getDefaultImageMetadata(new ImageTypeSpecifier(biSrc), writeParam); IIOMetadata streamMetadata = writer.getDefaultStreamMetadata(writeParam); IIOImage iioImg = new IIOImage(biSrc, null, imageMetadata); writer.write(streamMetadata, iioImg, writeParam); ios.close(); ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); ImageInputStream iis = ImageIO.createImageInputStream(bais); ImageReader reader = ImageIO.getImageReader(writer); reader.setInput(iis); BufferedImage dst = reader.read(0); // do test int x = dx / 2; int y = height / 2; for (int i = 0; i < usedColors.length; i++) { int dstRgb = dst.getRGB(x, y); System.out.println("dstColor: " + Integer.toHexString(dstRgb)); int srcRgb = usedColors[i].getRGB(); System.out.println("srcColor: " + Integer.toHexString(srcRgb)); if (dstRgb != srcRgb) { throw new RuntimeException("wrong color " + i + ": " + Integer.toHexString(dstRgb)); } x += dx; } }
Example 3
Source File: BooleanAttributes.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception { BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = new MemoryCacheImageOutputStream(os); iw.setOutput(ios); ImageWriteParam param = null; IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param); IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param); IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta; Source src = new StreamSource(new StringReader(metaXml)); DOMResult dst = new DOMResult(); transform(src, dst); Document doc = (Document)dst.getNode(); Element node = doc.getDocumentElement(); String metaFormat = node.getNodeName(); // Verify that the default metadata gets formatted correctly. verify(meta.getAsTree(metaFormat), boolXpaths, false); meta.mergeTree(metaFormat, node); // Verify that the merged metadata gets formatte correctly. verify(meta.getAsTree(metaFormat), boolXpaths, true); iw.write(streamMeta, new IIOImage(img, null, imageMeta), param); iw.dispose(); ios.close(); ImageReader ir = ImageIO.getImageReader(iw); byte[] bytes = os.toByteArray(); if (bytes.length == 0) throw new AssertionError("Zero length image file"); ByteArrayInputStream is = new ByteArrayInputStream(bytes); ImageInputStream iis = new MemoryCacheImageInputStream(is); ir.setInput(iis); if (useStreamMeta) meta = ir.getStreamMetadata(); else meta = ir.getImageMetadata(0); // Verify again after writing and re-reading the image verify(meta.getAsTree(metaFormat), boolXpaths, true); }
Example 4
Source File: BooleanAttributes.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 4 votes |
public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception { BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = new MemoryCacheImageOutputStream(os); iw.setOutput(ios); ImageWriteParam param = null; IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param); IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param); IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta; Source src = new StreamSource(new StringReader(metaXml)); DOMResult dst = new DOMResult(); transform(src, dst); Document doc = (Document)dst.getNode(); Element node = doc.getDocumentElement(); String metaFormat = node.getNodeName(); // Verify that the default metadata gets formatted correctly. verify(meta.getAsTree(metaFormat), boolXpaths, false); meta.mergeTree(metaFormat, node); // Verify that the merged metadata gets formatte correctly. verify(meta.getAsTree(metaFormat), boolXpaths, true); iw.write(streamMeta, new IIOImage(img, null, imageMeta), param); iw.dispose(); ios.close(); ImageReader ir = ImageIO.getImageReader(iw); byte[] bytes = os.toByteArray(); if (bytes.length == 0) throw new AssertionError("Zero length image file"); ByteArrayInputStream is = new ByteArrayInputStream(bytes); ImageInputStream iis = new MemoryCacheImageInputStream(is); ir.setInput(iis); if (useStreamMeta) meta = ir.getStreamMetadata(); else meta = ir.getImageMetadata(0); // Verify again after writing and re-reading the image verify(meta.getAsTree(metaFormat), boolXpaths, true); }
Example 5
Source File: BooleanAttributes.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception { BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = new MemoryCacheImageOutputStream(os); iw.setOutput(ios); ImageWriteParam param = null; IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param); IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param); IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta; Source src = new StreamSource(new StringReader(metaXml)); DOMResult dst = new DOMResult(); transform(src, dst); Document doc = (Document)dst.getNode(); Element node = doc.getDocumentElement(); String metaFormat = node.getNodeName(); // Verify that the default metadata gets formatted correctly. verify(meta.getAsTree(metaFormat), boolXpaths, false); meta.mergeTree(metaFormat, node); // Verify that the merged metadata gets formatte correctly. verify(meta.getAsTree(metaFormat), boolXpaths, true); iw.write(streamMeta, new IIOImage(img, null, imageMeta), param); iw.dispose(); ios.close(); ImageReader ir = ImageIO.getImageReader(iw); byte[] bytes = os.toByteArray(); if (bytes.length == 0) throw new AssertionError("Zero length image file"); ByteArrayInputStream is = new ByteArrayInputStream(bytes); ImageInputStream iis = new MemoryCacheImageInputStream(is); ir.setInput(iis); if (useStreamMeta) meta = ir.getStreamMetadata(); else meta = ir.getImageMetadata(0); // Verify again after writing and re-reading the image verify(meta.getAsTree(metaFormat), boolXpaths, true); }
Example 6
Source File: BMPCompressionTest.java From jdk8u_jdk with GNU General Public License v2.0 | 4 votes |
public void doTest() { try { System.out.println(this.getDescription()); if (param.getCompressionMode() != ImageWriteParam.MODE_EXPLICIT) { System.out.println("Warning: compression mode is not MODE_EXPLICIT"); } // change metadata according to ImageWriteParam IIOMetadata new_meta = iw.convertImageMetadata(meta, new ImageTypeSpecifier(img), param); IIOImage iio_img = new IIOImage(img, null, new_meta); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageOutputStream ios = ImageIO.createImageOutputStream(baos); iw.setOutput(ios); System.out.print("write image..."); System.out.println("Current compression Type is \""+param.getCompressionType()+"\""); iw.write(new_meta, iio_img, param); //iw.write(iio_img); System.out.println("OK"); System.out.print("read image ... "); ios.flush(); byte[] ba_image = baos.toByteArray(); System.out.println("Array length=" + ba_image.length); FileOutputStream fos = new FileOutputStream(new File(param.getCompressionType()+".bmp")); fos.write(ba_image); fos.flush(); fos = null; ByteArrayInputStream bais = new ByteArrayInputStream(ba_image); ImageReader ir = ImageIO.getImageReader(iw); ir.setInput(ImageIO.createImageInputStream(bais)); BufferedImage res = ir.read(0); System.out.println("OK"); if (!param.getCompressionType().equals("BI_JPEG")) { System.out.print("compare images ... "); boolean r = compare(img,res); System.out.println(r?"OK":"FAILED"); if (!r) { throw new RuntimeException("Compared images are not equals. Test failed."); } } BMPMetadata mdata = (BMPMetadata)ir.getImageMetadata(0); if (!param.getCompressionType().equals(param.getCompressionTypes()[mdata.compression])) { throw new RuntimeException("Different compression value"); } } catch (Exception ex) { ex.printStackTrace(); throw new RuntimeException("Unexpected exception: " + ex); } }
Example 7
Source File: LogicalScreenDimensionTest.java From jdk8u_jdk with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws IOException { String format = "GIF"; ImageWriter writer = ImageIO.getImageWritersByFormatName(format).next(); if (writer == null) { throw new RuntimeException("No available writers for " + format); } BufferedImage img = createTestImage(100, 100, BufferedImage.TYPE_BYTE_GRAY); ImageWriteParam p = writer.getDefaultWriteParam(); ImageTypeSpecifier type = ImageTypeSpecifier.createFromRenderedImage(img); IIOMetadata inImageMetadata = writer.getDefaultImageMetadata(type, p); IIOMetadata inStreamMetadata = writer.getDefaultStreamMetadata(p); // write and read image ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageOutputStream ios = ImageIO.createImageOutputStream(baos); writer.setOutput(ios); writer.write(inStreamMetadata, new IIOImage(img, null, inImageMetadata), p); ios.flush(); ios.close(); // read result ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); ImageInputStream iis = ImageIO.createImageInputStream(bais); ImageReader reader = ImageIO.getImageReader(writer); reader.setInput(iis); IIOMetadata outStreamMetadata = reader.getStreamMetadata(); GIFStreamMetadata gifStreamMetadata = (GIFStreamMetadata)outStreamMetadata; if (gifStreamMetadata.logicalScreenWidth != img.getWidth() || gifStreamMetadata.logicalScreenHeight != img.getHeight()) { throw new RuntimeException("Test failed due to wrong logical screen dimension."); } }
Example 8
Source File: BooleanAttributes.java From jdk8u_jdk with GNU General Public License v2.0 | 4 votes |
public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception { BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = new MemoryCacheImageOutputStream(os); iw.setOutput(ios); ImageWriteParam param = null; IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param); IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param); IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta; Source src = new StreamSource(new StringReader(metaXml)); DOMResult dst = new DOMResult(); transform(src, dst); Document doc = (Document)dst.getNode(); Element node = doc.getDocumentElement(); String metaFormat = node.getNodeName(); // Verify that the default metadata gets formatted correctly. verify(meta.getAsTree(metaFormat), boolXpaths, false); meta.mergeTree(metaFormat, node); // Verify that the merged metadata gets formatte correctly. verify(meta.getAsTree(metaFormat), boolXpaths, true); iw.write(streamMeta, new IIOImage(img, null, imageMeta), param); iw.dispose(); ios.close(); ImageReader ir = ImageIO.getImageReader(iw); byte[] bytes = os.toByteArray(); if (bytes.length == 0) throw new AssertionError("Zero length image file"); ByteArrayInputStream is = new ByteArrayInputStream(bytes); ImageInputStream iis = new MemoryCacheImageInputStream(is); ir.setInput(iis); if (useStreamMeta) meta = ir.getStreamMetadata(); else meta = ir.getImageMetadata(0); // Verify again after writing and re-reading the image verify(meta.getAsTree(metaFormat), boolXpaths, true); }
Example 9
Source File: BooleanAttributes.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception { BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = new MemoryCacheImageOutputStream(os); iw.setOutput(ios); ImageWriteParam param = null; IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param); IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param); IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta; Source src = new StreamSource(new StringReader(metaXml)); DOMResult dst = new DOMResult(); transform(src, dst); Document doc = (Document)dst.getNode(); Element node = doc.getDocumentElement(); String metaFormat = node.getNodeName(); // Verify that the default metadata gets formatted correctly. verify(meta.getAsTree(metaFormat), boolXpaths, false); meta.mergeTree(metaFormat, node); // Verify that the merged metadata gets formatte correctly. verify(meta.getAsTree(metaFormat), boolXpaths, true); iw.write(streamMeta, new IIOImage(img, null, imageMeta), param); iw.dispose(); ios.close(); ImageReader ir = ImageIO.getImageReader(iw); byte[] bytes = os.toByteArray(); if (bytes.length == 0) throw new AssertionError("Zero length image file"); ByteArrayInputStream is = new ByteArrayInputStream(bytes); ImageInputStream iis = new MemoryCacheImageInputStream(is); ir.setInput(iis); if (useStreamMeta) meta = ir.getStreamMetadata(); else meta = ir.getImageMetadata(0); // Verify again after writing and re-reading the image verify(meta.getAsTree(metaFormat), boolXpaths, true); }
Example 10
Source File: BooleanAttributes.java From openjdk-8-source with GNU General Public License v2.0 | 4 votes |
public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception { BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = new MemoryCacheImageOutputStream(os); iw.setOutput(ios); ImageWriteParam param = null; IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param); IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param); IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta; Source src = new StreamSource(new StringReader(metaXml)); DOMResult dst = new DOMResult(); transform(src, dst); Document doc = (Document)dst.getNode(); Element node = doc.getDocumentElement(); String metaFormat = node.getNodeName(); // Verify that the default metadata gets formatted correctly. verify(meta.getAsTree(metaFormat), boolXpaths, false); meta.mergeTree(metaFormat, node); // Verify that the merged metadata gets formatte correctly. verify(meta.getAsTree(metaFormat), boolXpaths, true); iw.write(streamMeta, new IIOImage(img, null, imageMeta), param); iw.dispose(); ios.close(); ImageReader ir = ImageIO.getImageReader(iw); byte[] bytes = os.toByteArray(); if (bytes.length == 0) throw new AssertionError("Zero length image file"); ByteArrayInputStream is = new ByteArrayInputStream(bytes); ImageInputStream iis = new MemoryCacheImageInputStream(is); ir.setInput(iis); if (useStreamMeta) meta = ir.getStreamMetadata(); else meta = ir.getImageMetadata(0); // Verify again after writing and re-reading the image verify(meta.getAsTree(metaFormat), boolXpaths, true); }
Example 11
Source File: BooleanAttributes.java From hottub with GNU General Public License v2.0 | 4 votes |
public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception { BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = new MemoryCacheImageOutputStream(os); iw.setOutput(ios); ImageWriteParam param = null; IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param); IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param); IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta; Source src = new StreamSource(new StringReader(metaXml)); DOMResult dst = new DOMResult(); transform(src, dst); Document doc = (Document)dst.getNode(); Element node = doc.getDocumentElement(); String metaFormat = node.getNodeName(); // Verify that the default metadata gets formatted correctly. verify(meta.getAsTree(metaFormat), boolXpaths, false); meta.mergeTree(metaFormat, node); // Verify that the merged metadata gets formatte correctly. verify(meta.getAsTree(metaFormat), boolXpaths, true); iw.write(streamMeta, new IIOImage(img, null, imageMeta), param); iw.dispose(); ios.close(); ImageReader ir = ImageIO.getImageReader(iw); byte[] bytes = os.toByteArray(); if (bytes.length == 0) throw new AssertionError("Zero length image file"); ByteArrayInputStream is = new ByteArrayInputStream(bytes); ImageInputStream iis = new MemoryCacheImageInputStream(is); ir.setInput(iis); if (useStreamMeta) meta = ir.getStreamMetadata(); else meta = ir.getImageMetadata(0); // Verify again after writing and re-reading the image verify(meta.getAsTree(metaFormat), boolXpaths, true); }
Example 12
Source File: BooleanAttributes.java From dragonwell8_jdk with GNU General Public License v2.0 | 4 votes |
public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception { BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = new MemoryCacheImageOutputStream(os); iw.setOutput(ios); ImageWriteParam param = null; IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param); IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param); IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta; Source src = new StreamSource(new StringReader(metaXml)); DOMResult dst = new DOMResult(); transform(src, dst); Document doc = (Document)dst.getNode(); Element node = doc.getDocumentElement(); String metaFormat = node.getNodeName(); // Verify that the default metadata gets formatted correctly. verify(meta.getAsTree(metaFormat), boolXpaths, false); meta.mergeTree(metaFormat, node); // Verify that the merged metadata gets formatte correctly. verify(meta.getAsTree(metaFormat), boolXpaths, true); iw.write(streamMeta, new IIOImage(img, null, imageMeta), param); iw.dispose(); ios.close(); ImageReader ir = ImageIO.getImageReader(iw); byte[] bytes = os.toByteArray(); if (bytes.length == 0) throw new AssertionError("Zero length image file"); ByteArrayInputStream is = new ByteArrayInputStream(bytes); ImageInputStream iis = new MemoryCacheImageInputStream(is); ir.setInput(iis); if (useStreamMeta) meta = ir.getStreamMetadata(); else meta = ir.getImageMetadata(0); // Verify again after writing and re-reading the image verify(meta.getAsTree(metaFormat), boolXpaths, true); }
Example 13
Source File: WriteToSequenceAfterAbort.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
private void test(final ImageWriter writer) throws IOException { String suffix = writer.getOriginatingProvider().getFileSuffixes()[0]; // Image initialization BufferedImage imageUpperLeft = new BufferedImage(WIDTH, HEIGHT, TYPE_BYTE_BINARY); Graphics2D g = imageUpperLeft.createGraphics(); g.setColor(Color.WHITE); g.fillRect(0, 0, WIDTH/2, HEIGHT/2); g.dispose(); BufferedImage imageLowerRight = new BufferedImage(WIDTH, HEIGHT, TYPE_BYTE_BINARY); g = imageLowerRight.createGraphics(); g.setColor(Color.WHITE); g.fillRect(WIDTH/2, HEIGHT/2, WIDTH/2, HEIGHT/2); g.dispose(); TiledImage[] images = new TiledImage[] { new TiledImage(imageUpperLeft, NUM_TILES_XY, NUM_TILES_XY), new TiledImage(imageUpperLeft, NUM_TILES_XY, NUM_TILES_XY), new TiledImage(imageLowerRight, NUM_TILES_XY, NUM_TILES_XY), new TiledImage(imageLowerRight, NUM_TILES_XY, NUM_TILES_XY) }; // File initialization File file = File.createTempFile("temp", "." + suffix); file.deleteOnExit(); FileOutputStream fos = new SkipWriteOnAbortOutputStream(file); ImageOutputStream ios = ImageIO.createImageOutputStream(fos); writer.setOutput(ios); writer.addIIOWriteProgressListener(this); writer.prepareWriteSequence(null); boolean[] abortions = new boolean[] {true, false, true, false}; for (int i = 0; i < 4; i++) { abortFlag = abortions[i]; isAbortCalled = false; isCompleteCalled = false; isProgressCalled = false; isStartedCalled = false; TiledImage image = images[i]; if (abortFlag) { // This write will be aborted, and file will not be touched writer.writeToSequence(new IIOImage(image, null, null), null); if (!isStartedCalled) { throw new RuntimeException("Started should be called"); } if (!isProgressCalled) { throw new RuntimeException("Progress should be called"); } if (!isAbortCalled) { throw new RuntimeException("Abort should be called"); } if (isCompleteCalled) { throw new RuntimeException("Complete should not be called"); } } else { // This write should be completed successfully and the file should // contain correct image data. writer.writeToSequence(new IIOImage(image, null, null), null); if (!isStartedCalled) { throw new RuntimeException("Started should be called"); } if (!isProgressCalled) { throw new RuntimeException("Progress should be called"); } if (isAbortCalled) { throw new RuntimeException("Abort should not be called"); } if (!isCompleteCalled) { throw new RuntimeException("Complete should be called"); } } } writer.endWriteSequence(); writer.dispose(); ios.close(); // Validates content of the file. ImageReader reader = ImageIO.getImageReader(writer); ImageInputStream iis = ImageIO.createImageInputStream(file); reader.setInput(iis); for (int i = 0; i < 2; i++) { System.out.println("Testing image " + i); BufferedImage imageRead = reader.read(i); BufferedImage imageWrite = images[2 * i].getAsBufferedImage(); for (int x = 0; x < WIDTH; ++x) { for (int y = 0; y < HEIGHT; ++y) { if (imageRead.getRGB(x, y) != imageWrite.getRGB(x, y)) { throw new RuntimeException("Test failed for image " + i); } } } } }
Example 14
Source File: BMPCompressionTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
public void doTest() { try { System.out.println(this.getDescription()); if (param.getCompressionMode() != ImageWriteParam.MODE_EXPLICIT) { System.out.println("Warning: compression mode is not MODE_EXPLICIT"); } // change metadata according to ImageWriteParam IIOMetadata new_meta = iw.convertImageMetadata(meta, new ImageTypeSpecifier(img), param); IIOImage iio_img = new IIOImage(img, null, new_meta); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageOutputStream ios = ImageIO.createImageOutputStream(baos); iw.setOutput(ios); System.out.print("write image..."); System.out.println("Current compression Type is \""+param.getCompressionType()+"\""); iw.write(new_meta, iio_img, param); //iw.write(iio_img); System.out.println("OK"); System.out.print("read image ... "); ios.flush(); byte[] ba_image = baos.toByteArray(); System.out.println("Array length=" + ba_image.length); FileOutputStream fos = new FileOutputStream(new File(param.getCompressionType()+".bmp")); fos.write(ba_image); fos.flush(); fos = null; ByteArrayInputStream bais = new ByteArrayInputStream(ba_image); ImageReader ir = ImageIO.getImageReader(iw); ir.setInput(ImageIO.createImageInputStream(bais)); BufferedImage res = ir.read(0); System.out.println("OK"); if (!param.getCompressionType().equals("BI_JPEG")) { System.out.print("compare images ... "); boolean r = compare(img,res); System.out.println(r?"OK":"FAILED"); if (!r) { throw new RuntimeException("Compared images are not equals. Test failed."); } } BMPMetadata mdata = (BMPMetadata)ir.getImageMetadata(0); if (!param.getCompressionType().equals(param.getCompressionTypes()[mdata.compression])) { throw new RuntimeException("Different compression value"); } } catch (Exception ex) { ex.printStackTrace(); throw new RuntimeException("Unexpected exception: " + ex); } }
Example 15
Source File: LogicalScreenDimensionTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws IOException { String format = "GIF"; ImageWriter writer = ImageIO.getImageWritersByFormatName(format).next(); if (writer == null) { throw new RuntimeException("No available writers for " + format); } BufferedImage img = createTestImage(100, 100, BufferedImage.TYPE_BYTE_GRAY); ImageWriteParam p = writer.getDefaultWriteParam(); ImageTypeSpecifier type = ImageTypeSpecifier.createFromRenderedImage(img); IIOMetadata inImageMetadata = writer.getDefaultImageMetadata(type, p); IIOMetadata inStreamMetadata = writer.getDefaultStreamMetadata(p); // write and read image ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageOutputStream ios = ImageIO.createImageOutputStream(baos); writer.setOutput(ios); writer.write(inStreamMetadata, new IIOImage(img, null, inImageMetadata), p); ios.flush(); ios.close(); // read result ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); ImageInputStream iis = ImageIO.createImageInputStream(bais); ImageReader reader = ImageIO.getImageReader(writer); reader.setInput(iis); IIOMetadata outStreamMetadata = reader.getStreamMetadata(); GIFStreamMetadata gifStreamMetadata = (GIFStreamMetadata)outStreamMetadata; if (gifStreamMetadata.logicalScreenWidth != img.getWidth() || gifStreamMetadata.logicalScreenHeight != img.getHeight()) { throw new RuntimeException("Test failed due to wrong logical screen dimension."); } }
Example 16
Source File: BooleanAttributes.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception { BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = new MemoryCacheImageOutputStream(os); iw.setOutput(ios); ImageWriteParam param = null; IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param); IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param); IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta; Source src = new StreamSource(new StringReader(metaXml)); DOMResult dst = new DOMResult(); transform(src, dst); Document doc = (Document)dst.getNode(); Element node = doc.getDocumentElement(); String metaFormat = node.getNodeName(); // Verify that the default metadata gets formatted correctly. verify(meta.getAsTree(metaFormat), boolXpaths, false); meta.mergeTree(metaFormat, node); // Verify that the merged metadata gets formatte correctly. verify(meta.getAsTree(metaFormat), boolXpaths, true); iw.write(streamMeta, new IIOImage(img, null, imageMeta), param); iw.dispose(); ios.close(); ImageReader ir = ImageIO.getImageReader(iw); byte[] bytes = os.toByteArray(); if (bytes.length == 0) throw new AssertionError("Zero length image file"); ByteArrayInputStream is = new ByteArrayInputStream(bytes); ImageInputStream iis = new MemoryCacheImageInputStream(is); ir.setInput(iis); if (useStreamMeta) meta = ir.getStreamMetadata(); else meta = ir.getImageMetadata(0); // Verify again after writing and re-reading the image verify(meta.getAsTree(metaFormat), boolXpaths, true); }
Example 17
Source File: BooleanAttributes.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 4 votes |
public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception { BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = new MemoryCacheImageOutputStream(os); iw.setOutput(ios); ImageWriteParam param = null; IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param); IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param); IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta; Source src = new StreamSource(new StringReader(metaXml)); DOMResult dst = new DOMResult(); transform(src, dst); Document doc = (Document)dst.getNode(); Element node = doc.getDocumentElement(); String metaFormat = node.getNodeName(); // Verify that the default metadata gets formatted correctly. verify(meta.getAsTree(metaFormat), boolXpaths, false); meta.mergeTree(metaFormat, node); // Verify that the merged metadata gets formatte correctly. verify(meta.getAsTree(metaFormat), boolXpaths, true); iw.write(streamMeta, new IIOImage(img, null, imageMeta), param); iw.dispose(); ios.close(); ImageReader ir = ImageIO.getImageReader(iw); byte[] bytes = os.toByteArray(); if (bytes.length == 0) throw new AssertionError("Zero length image file"); ByteArrayInputStream is = new ByteArrayInputStream(bytes); ImageInputStream iis = new MemoryCacheImageInputStream(is); ir.setInput(iis); if (useStreamMeta) meta = ir.getStreamMetadata(); else meta = ir.getImageMetadata(0); // Verify again after writing and re-reading the image verify(meta.getAsTree(metaFormat), boolXpaths, true); }
Example 18
Source File: BooleanAttributes.java From openjdk-jdk8u with GNU General Public License v2.0 | 4 votes |
public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception { BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = new MemoryCacheImageOutputStream(os); iw.setOutput(ios); ImageWriteParam param = null; IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param); IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param); IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta; Source src = new StreamSource(new StringReader(metaXml)); DOMResult dst = new DOMResult(); transform(src, dst); Document doc = (Document)dst.getNode(); Element node = doc.getDocumentElement(); String metaFormat = node.getNodeName(); // Verify that the default metadata gets formatted correctly. verify(meta.getAsTree(metaFormat), boolXpaths, false); meta.mergeTree(metaFormat, node); // Verify that the merged metadata gets formatte correctly. verify(meta.getAsTree(metaFormat), boolXpaths, true); iw.write(streamMeta, new IIOImage(img, null, imageMeta), param); iw.dispose(); ios.close(); ImageReader ir = ImageIO.getImageReader(iw); byte[] bytes = os.toByteArray(); if (bytes.length == 0) throw new AssertionError("Zero length image file"); ByteArrayInputStream is = new ByteArrayInputStream(bytes); ImageInputStream iis = new MemoryCacheImageInputStream(is); ir.setInput(iis); if (useStreamMeta) meta = ir.getStreamMetadata(); else meta = ir.getImageMetadata(0); // Verify again after writing and re-reading the image verify(meta.getAsTree(metaFormat), boolXpaths, true); }
Example 19
Source File: BooleanAttributes.java From jdk8u60 with GNU General Public License v2.0 | 4 votes |
public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception { BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = new MemoryCacheImageOutputStream(os); iw.setOutput(ios); ImageWriteParam param = null; IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param); IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param); IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta; Source src = new StreamSource(new StringReader(metaXml)); DOMResult dst = new DOMResult(); transform(src, dst); Document doc = (Document)dst.getNode(); Element node = doc.getDocumentElement(); String metaFormat = node.getNodeName(); // Verify that the default metadata gets formatted correctly. verify(meta.getAsTree(metaFormat), boolXpaths, false); meta.mergeTree(metaFormat, node); // Verify that the merged metadata gets formatte correctly. verify(meta.getAsTree(metaFormat), boolXpaths, true); iw.write(streamMeta, new IIOImage(img, null, imageMeta), param); iw.dispose(); ios.close(); ImageReader ir = ImageIO.getImageReader(iw); byte[] bytes = os.toByteArray(); if (bytes.length == 0) throw new AssertionError("Zero length image file"); ByteArrayInputStream is = new ByteArrayInputStream(bytes); ImageInputStream iis = new MemoryCacheImageInputStream(is); ir.setInput(iis); if (useStreamMeta) meta = ir.getStreamMetadata(); else meta = ir.getImageMetadata(0); // Verify again after writing and re-reading the image verify(meta.getAsTree(metaFormat), boolXpaths, true); }
Example 20
Source File: BooleanAttributes.java From TencentKona-8 with GNU General Public License v2.0 | 4 votes |
public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception { BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = new MemoryCacheImageOutputStream(os); iw.setOutput(ios); ImageWriteParam param = null; IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param); IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param); IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta; Source src = new StreamSource(new StringReader(metaXml)); DOMResult dst = new DOMResult(); transform(src, dst); Document doc = (Document)dst.getNode(); Element node = doc.getDocumentElement(); String metaFormat = node.getNodeName(); // Verify that the default metadata gets formatted correctly. verify(meta.getAsTree(metaFormat), boolXpaths, false); meta.mergeTree(metaFormat, node); // Verify that the merged metadata gets formatte correctly. verify(meta.getAsTree(metaFormat), boolXpaths, true); iw.write(streamMeta, new IIOImage(img, null, imageMeta), param); iw.dispose(); ios.close(); ImageReader ir = ImageIO.getImageReader(iw); byte[] bytes = os.toByteArray(); if (bytes.length == 0) throw new AssertionError("Zero length image file"); ByteArrayInputStream is = new ByteArrayInputStream(bytes); ImageInputStream iis = new MemoryCacheImageInputStream(is); ir.setInput(iis); if (useStreamMeta) meta = ir.getStreamMetadata(); else meta = ir.getImageMetadata(0); // Verify again after writing and re-reading the image verify(meta.getAsTree(metaFormat), boolXpaths, true); }