Java Code Examples for javax.imageio.ImageIO#getImageReader()
The following examples show how to use
javax.imageio.ImageIO#getImageReader() .
These examples are extracted from open source projects.
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 Project: openjdk-jdk9 File: RGBImageTest.java License: 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 Project: jdk8u_jdk File: RGBImageTest.java License: 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 Project: dragonwell8_jdk File: BooleanAttributes.java License: 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 Project: TencentKona-8 File: BooleanAttributes.java License: 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 Project: jdk8u60 File: BooleanAttributes.java License: 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 Project: openjdk-jdk8u File: BooleanAttributes.java License: 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 7
Source Project: openjdk-jdk8u-backup File: BooleanAttributes.java License: 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 8
Source Project: openjdk-jdk9 File: BooleanAttributes.java License: 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 Project: openjdk-jdk9 File: LogicalScreenDimensionTest.java License: 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 10
Source Project: openjdk-jdk9 File: BMPCompressionTest.java License: 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 11
Source Project: openjdk-jdk9 File: WriteToSequenceAfterAbort.java License: 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 12
Source Project: jdk8u-jdk File: BooleanAttributes.java License: 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 Project: hottub File: BooleanAttributes.java License: 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 14
Source Project: openjdk-8-source File: BooleanAttributes.java License: 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 15
Source Project: openjdk-8 File: BooleanAttributes.java License: 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 16
Source Project: jdk8u_jdk File: BooleanAttributes.java License: 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 Project: jdk8u_jdk File: LogicalScreenDimensionTest.java License: 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 18
Source Project: jdk8u_jdk File: BMPCompressionTest.java License: 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 19
Source Project: jdk8u-jdk File: BooleanAttributes.java License: 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 Project: jdk8u-dev-jdk File: BooleanAttributes.java License: 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); }