Java Code Examples for javax.imageio.ImageWriter#getDefaultStreamMetadata()
The following examples show how to use
javax.imageio.ImageWriter#getDefaultStreamMetadata() .
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: CanWriteSequence.java From dragonwell8_jdk with GNU General Public License v2.0 | 6 votes |
private static void test(final ImageWriter writer) throws Exception { final File file = File.createTempFile("temp", ".img"); file.deleteOnExit(); final FileOutputStream fos = new FileOutputStream(file); final ImageOutputStream ios = ImageIO.createImageOutputStream(fos); writer.setOutput(ios); final IIOMetadata data = writer.getDefaultStreamMetadata(null); if (writer.canWriteSequence()) { writer.prepareWriteSequence(data); } else { try { writer.prepareWriteSequence(data); throw new RuntimeException( "UnsupportedOperationException was not thrown"); } catch (final UnsupportedOperationException ignored) { // expected } } writer.dispose(); ios.close(); }
Example 2
Source File: CanWriteSequence.java From jdk8u_jdk with GNU General Public License v2.0 | 6 votes |
private static void test(final ImageWriter writer) throws Exception { final File file = File.createTempFile("temp", ".img"); file.deleteOnExit(); final FileOutputStream fos = new FileOutputStream(file); final ImageOutputStream ios = ImageIO.createImageOutputStream(fos); writer.setOutput(ios); final IIOMetadata data = writer.getDefaultStreamMetadata(null); if (writer.canWriteSequence()) { writer.prepareWriteSequence(data); } else { try { writer.prepareWriteSequence(data); throw new RuntimeException( "UnsupportedOperationException was not thrown"); } catch (final UnsupportedOperationException ignored) { // expected } } writer.dispose(); ios.close(); }
Example 3
Source File: WriteMetadataTest.java From jdk8u_jdk with GNU General Public License v2.0 | 6 votes |
public static void main(String[] args) { ImageWriter w = ImageIO.getImageWritersByFormatName(format).next(); if (w == null) { throw new RuntimeException("No available writers for format " + format); } ImageWriteParam p = w.getDefaultWriteParam(); ImageTypeSpecifier t = ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_RGB); IIOMetadata m = w.getDefaultImageMetadata(t, p); System.out.println("Default image metadata is " + m); testWritableMetadata(m); IIOMetadata sm = w.getDefaultStreamMetadata(p); System.out.println("Default stream metadata is " + sm); testWritableMetadata(sm); }
Example 4
Source File: PrepareWriteSequenceTest.java From jdk8u_jdk with GNU General Public License v2.0 | 6 votes |
public static void main(String[] args) throws IOException { String format = "GIF"; ImageWriter writer = ImageIO.getImageWritersByFormatName(format).next(); ImageWriteParam param = writer.getDefaultWriteParam(); IIOMetadata streamMetadata = writer.getDefaultStreamMetadata(param); boolean gotException = false; try { writer.prepareWriteSequence(streamMetadata); } catch (IllegalStateException e) { gotException = true; System.out.println("Test passed."); e.printStackTrace(System.out); } if (!gotException) { throw new RuntimeException("Test failed."); } }
Example 5
Source File: OpaquePNGToGIFTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 6 votes |
public void createAnimatedImage(BufferedImage bi, IIOMetadata metadata, ImageWriter writer, File outputFile) { try { fos = new FileOutputStream(outputFile); ImageOutputStream ios = ImageIO.createImageOutputStream(fos); System.out.println(ios); writer.setOutput(ios); ImageWriteParam param = writer.getDefaultWriteParam(); IIOMetadata streamData = writer.getDefaultStreamMetadata(param); writer.prepareWriteSequence(streamData); ImageTypeSpecifier specify = new ImageTypeSpecifier(bi); IIOMetadata imgData = writer.convertImageMetadata( (IIOMetadata) metadata, specify, param); GIFImageMetadata gifData = setAnimationProperties(imgData); IIOImage iim = new IIOImage(bi, null, gifData); param.setProgressiveMode(param.MODE_DISABLED); writer.writeToSequence(iim, param); writer.endWriteSequence(); ios.close(); } catch (Exception e) { e.printStackTrace(); } }
Example 6
Source File: CanWriteSequence.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 6 votes |
private static void test(final ImageWriter writer) throws Exception { final File file = File.createTempFile("temp", ".img"); file.deleteOnExit(); final FileOutputStream fos = new FileOutputStream(file); final ImageOutputStream ios = ImageIO.createImageOutputStream(fos); writer.setOutput(ios); final IIOMetadata data = writer.getDefaultStreamMetadata(null); if (writer.canWriteSequence()) { writer.prepareWriteSequence(data); } else { try { writer.prepareWriteSequence(data); throw new RuntimeException( "UnsupportedOperationException was not thrown"); } catch (final UnsupportedOperationException ignored) { // expected } } writer.dispose(); ios.close(); }
Example 7
Source File: CanWriteSequence.java From openjdk-jdk8u with GNU General Public License v2.0 | 6 votes |
private static void test(final ImageWriter writer) throws Exception { final File file = File.createTempFile("temp", ".img"); file.deleteOnExit(); final FileOutputStream fos = new FileOutputStream(file); final ImageOutputStream ios = ImageIO.createImageOutputStream(fos); writer.setOutput(ios); final IIOMetadata data = writer.getDefaultStreamMetadata(null); if (writer.canWriteSequence()) { writer.prepareWriteSequence(data); } else { try { writer.prepareWriteSequence(data); throw new RuntimeException( "UnsupportedOperationException was not thrown"); } catch (final UnsupportedOperationException ignored) { // expected } } writer.dispose(); ios.close(); }
Example 8
Source File: CanWriteSequence.java From jdk8u-jdk with GNU General Public License v2.0 | 6 votes |
private static void test(final ImageWriter writer) throws Exception { final File file = File.createTempFile("temp", ".img"); file.deleteOnExit(); final FileOutputStream fos = new FileOutputStream(file); final ImageOutputStream ios = ImageIO.createImageOutputStream(fos); writer.setOutput(ios); final IIOMetadata data = writer.getDefaultStreamMetadata(null); if (writer.canWriteSequence()) { writer.prepareWriteSequence(data); } else { try { writer.prepareWriteSequence(data); throw new RuntimeException( "UnsupportedOperationException was not thrown"); } catch (final UnsupportedOperationException ignored) { // expected } } writer.dispose(); ios.close(); }
Example 9
Source File: LeptUtils.java From lept4j with Apache License 2.0 | 5 votes |
/** * Gets image data of an <code>RenderedImage</code> object. * * @param image an <code>RenderedImage</code> object * @return a byte buffer of image data * @throws IOException */ static ByteBuffer getImageByteBuffer(RenderedImage image) throws IOException { //Set up the writeParam TIFFImageWriteParam tiffWriteParam = new TIFFImageWriteParam(Locale.US); tiffWriteParam.setCompressionMode(ImageWriteParam.MODE_DISABLED); //Get tif writer and set output to file Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName(TIFF_FORMAT); if (!writers.hasNext()) { throw new RuntimeException(JAI_IMAGE_WRITER_MESSAGE); } ImageWriter writer = writers.next(); //Get the stream metadata IIOMetadata streamMetadata = writer.getDefaultStreamMetadata(tiffWriteParam); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ImageOutputStream ios = ImageIO.createImageOutputStream(outputStream); writer.setOutput(ios); writer.write(streamMetadata, new IIOImage(image, null, null), tiffWriteParam); // writer.write(image); writer.dispose(); ios.seek(0); byte[] b = new byte[(int) ios.length()]; ios.read(b); ios.close(); ByteBuffer buf = ByteBuffer.allocateDirect(b.length); buf.order(ByteOrder.nativeOrder()); buf.put(b); ((Buffer) buf).flip(); return buf; }
Example 10
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 11
Source File: AnimationTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) { try { AnimationTest t = new AnimationTest(); t.initFrame(); ImageWriter w = t.initWriter(); ImageWriteParam p = w.getDefaultWriteParam(); IIOMetadata streamMetadata = w.getDefaultStreamMetadata(p); w.prepareWriteSequence(streamMetadata); for (int i = 0; i < 50; i++) { BufferedImage f = t.createNextFrame(); ImageTypeSpecifier type = new ImageTypeSpecifier(f); IIOMetadata m = w.getDefaultImageMetadata(type, p); w.writeToSequence(new IIOImage(f, null, m), p); } w.endWriteSequence(); t.checkAnimation(); } catch (Exception e) { throw new RuntimeException("Test failed.", e); } }
Example 12
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 13
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 14
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 15
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 16
Source File: WriterReuseTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
public static void doTest(boolean writeSequence) throws IOException { String format = "GIF"; ImageWriter writer = ImageIO.getImageWritersByFormatName(format).next(); if (writer == null) { throw new RuntimeException("No writer available for " + format); } BufferedImage img = createTestImage(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageOutputStream ios = ImageIO.createImageOutputStream(baos); writer.setOutput(ios); WriterReuseTest t = new WriterReuseTest(); writer.addIIOWriteProgressListener(t); ImageWriteParam param = writer.getDefaultWriteParam(); IIOMetadata streamMetadata = writer.getDefaultStreamMetadata(param); IIOImage iioImg = new IIOImage(img, null, null); if (writeSequence) { writer.prepareWriteSequence(streamMetadata); writer.writeToSequence(iioImg, param); } else { writer.write(img); } if (!t.isWritingAborted || t.isWritingCompleted) { throw new RuntimeException("Test failed."); } t.reset(); // next attempt after abort ImageOutputStream ios2 = ImageIO.createImageOutputStream(new ByteArrayOutputStream()); writer.setOutput(ios2); if (writeSequence) { writer.writeToSequence(iioImg, param); } else { writer.write(img); } if (t.isWritingAborted || !t.isWritingCompleted) { throw new RuntimeException("Test failed."); } System.out.println("Test passed."); }
Example 17
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); }
Example 18
Source File: WriterReuseTest.java From jdk8u_jdk with GNU General Public License v2.0 | 4 votes |
public static void doTest(boolean writeSequence) throws IOException { String format = "GIF"; ImageWriter writer = ImageIO.getImageWritersByFormatName(format).next(); if (writer == null) { throw new RuntimeException("No writer available for " + format); } BufferedImage img = createTestImage(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageOutputStream ios = ImageIO.createImageOutputStream(baos); writer.setOutput(ios); WriterReuseTest t = new WriterReuseTest(); writer.addIIOWriteProgressListener(t); ImageWriteParam param = writer.getDefaultWriteParam(); IIOMetadata streamMetadata = writer.getDefaultStreamMetadata(param); IIOImage iioImg = new IIOImage(img, null, null); if (writeSequence) { writer.prepareWriteSequence(streamMetadata); writer.writeToSequence(iioImg, param); } else { writer.write(img); } if (!t.isWritingAborted || t.isWritingCompleted) { throw new RuntimeException("Test failed."); } t.reset(); // next attempt after abort ImageOutputStream ios2 = ImageIO.createImageOutputStream(new ByteArrayOutputStream()); writer.setOutput(ios2); if (writeSequence) { writer.writeToSequence(iioImg, param); } else { writer.write(img); } if (t.isWritingAborted || !t.isWritingCompleted) { throw new RuntimeException("Test failed."); } System.out.println("Test passed."); }
Example 19
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 20
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); }