Java examples for 2D Graphics:GIF
configure GIF Frame
//package com.java2s; import javax.imageio.metadata.IIOInvalidTreeException; import javax.imageio.metadata.IIOMetadata; import javax.imageio.metadata.IIOMetadataNode; import org.w3c.dom.Node; public class Main { private static void configureGIFFrame(final IIOMetadata meta, final String delayTime, final int imageIndex, final String disposalMethod, final int loopCount) { final String metaFormat = meta.getNativeMetadataFormatName(); if (!"javax_imageio_gif_image_1.0".equals(metaFormat)) { throw new IllegalArgumentException( "Unfamiliar gif metadata format: " + metaFormat); }/* ww w . j ava2 s .com*/ final Node root = meta.getAsTree(metaFormat); Node child = root.getFirstChild(); while (child != null) { if ("GraphicControlExtension".equals(child.getNodeName())) { break; } child = child.getNextSibling(); } final IIOMetadataNode gce = (IIOMetadataNode) child; gce.setAttribute("userDelay", "FALSE"); gce.setAttribute("delayTime", delayTime); gce.setAttribute("disposalMethod", disposalMethod); if (imageIndex == 0) { final IIOMetadataNode aes = new IIOMetadataNode( "ApplicationExtensions"); final IIOMetadataNode ae = new IIOMetadataNode( "ApplicationExtension"); ae.setAttribute("applicationID", "NETSCAPE"); ae.setAttribute("authenticationCode", "2.0"); final byte[] uo = new byte[] { 0x1, (byte) (loopCount & 0xFF), (byte) (loopCount >> 8 & 0xFF) }; ae.setUserObject(uo); aes.appendChild(ae); root.appendChild(aes); } try { meta.setFromTree(metaFormat, root); } catch (final IIOInvalidTreeException e) { throw new Error(e); } } }