Java 类javax.imageio.metadata.IIOMetadataNode 实例源码

项目:OpenJSharp    文件:COMMarkerSegment.java   
/**
 * Constructs a marker segment from a native tree node.  If the node
 * is an <code>IIOMetadataNode</code> and contains a user object,
 * that object is used rather than the string attribute.  If the
 * string attribute is used, the default encoding is used.
 */
COMMarkerSegment(Node node) throws IIOInvalidTreeException{
    super(JPEG.COM);
    if (node instanceof IIOMetadataNode) {
        IIOMetadataNode ourNode = (IIOMetadataNode) node;
        data = (byte []) ourNode.getUserObject();
    }
    if (data == null) {
        String comment =
            node.getAttributes().getNamedItem("comment").getNodeValue();
        if (comment != null) {
            data = comment.getBytes(); // Default encoding
        } else {
            throw new IIOInvalidTreeException("Empty comment node!", node);
        }
    }
}
项目:openjdk-jdk10    文件:PngCreationTimeTest.java   
public static IIOMetadataNode createStandardMetadataNodeTree() {
    /*
     * Create standard metadata tree with creation time in
     * Standard(Root)/Document/ImageCreationTime node
     */
    IIOMetadataNode createTimeNode = new IIOMetadataNode("ImageCreationTime");
    createTimeNode.setAttribute("year", "2016");
    createTimeNode.setAttribute("month", "12");
    createTimeNode.setAttribute("day", "21");
    createTimeNode.setAttribute("hour", "18");
    createTimeNode.setAttribute("minute", "30");
    createTimeNode.setAttribute("second", "00");

    // Create the Document node
    IIOMetadataNode documentNode = new IIOMetadataNode("Document");
    documentNode.appendChild(createTimeNode);

    // Create a root node append the Document node
    IIOMetadataNode root = new IIOMetadataNode("javax_imageio_1.0");
    root.appendChild(documentNode);

    return root;
}
项目:OpenJSharp    文件:SOSMarkerSegment.java   
IIOMetadataNode getNativeNode() {
    IIOMetadataNode node = new IIOMetadataNode("sos");
    node.setAttribute("numScanComponents",
                      Integer.toString(componentSpecs.length));
    node.setAttribute("startSpectralSelection",
                      Integer.toString(startSpectralSelection));
    node.setAttribute("endSpectralSelection",
                      Integer.toString(endSpectralSelection));
    node.setAttribute("approxHigh",
                      Integer.toString(approxHigh));
    node.setAttribute("approxLow",
                      Integer.toString(approxLow));
    for (int i = 0; i < componentSpecs.length; i++) {
        node.appendChild(componentSpecs[i].getNativeNode());
    }

    return node;
}
项目:OpenJSharp    文件:JFIFMarkerSegment.java   
/**
 * Returns a tree of DOM nodes representing this object and any
 * subordinate JFXX extension or ICC Profile segments.
 */
IIOMetadataNode getNativeNode() {
    IIOMetadataNode node = new IIOMetadataNode("app0JFIF");
    node.setAttribute("majorVersion", Integer.toString(majorVersion));
    node.setAttribute("minorVersion", Integer.toString(minorVersion));
    node.setAttribute("resUnits", Integer.toString(resUnits));
    node.setAttribute("Xdensity", Integer.toString(Xdensity));
    node.setAttribute("Ydensity", Integer.toString(Ydensity));
    node.setAttribute("thumbWidth", Integer.toString(thumbWidth));
    node.setAttribute("thumbHeight", Integer.toString(thumbHeight));
    if (!extSegments.isEmpty()) {
        IIOMetadataNode JFXXnode = new IIOMetadataNode("JFXX");
        node.appendChild(JFXXnode);
        for (Iterator iter = extSegments.iterator(); iter.hasNext();) {
            JFIFExtensionMarkerSegment seg =
                (JFIFExtensionMarkerSegment) iter.next();
            JFXXnode.appendChild(seg.getNativeNode());
        }
    }
    if (iccSegment != null) {
        node.appendChild(iccSegment.getNativeNode());
    }

    return node;
}
项目:OpenJSharp    文件:SOFMarkerSegment.java   
IIOMetadataNode getNativeNode() {
    IIOMetadataNode node = new IIOMetadataNode("sof");
    node.setAttribute("process", Integer.toString(tag-JPEG.SOF0));
    node.setAttribute("samplePrecision",
                      Integer.toString(samplePrecision));
    node.setAttribute("numLines",
                      Integer.toString(numLines));
    node.setAttribute("samplesPerLine",
                      Integer.toString(samplesPerLine));
    node.setAttribute("numFrameComponents",
                      Integer.toString(componentSpecs.length));
    for (int i = 0; i < componentSpecs.length; i++) {
        node.appendChild(componentSpecs[i].getNativeNode());
    }

    return node;
}
项目:OpenJSharp    文件:BMPMetadata.java   
protected IIOMetadataNode getStandardChromaNode() {

        if ((palette != null) && (paletteSize > 0)) {
            IIOMetadataNode node = new IIOMetadataNode("Chroma");
            IIOMetadataNode subNode = new IIOMetadataNode("Palette");
            int numComps = palette.length / paletteSize;
            subNode.setAttribute("value", "" + numComps);

            for (int i = 0, j = 0; i < paletteSize; i++) {
                IIOMetadataNode subNode1 = new IIOMetadataNode("PaletteEntry");
                subNode1.setAttribute("index", ""+i);
                subNode1.setAttribute("red", "" + palette[j++]);
                subNode1.setAttribute("green", "" + palette[j++]);
                subNode1.setAttribute("blue", "" + palette[j++]);
                if (numComps == 4 && palette[j] != 0)
                    subNode1.setAttribute("alpha", "" + palette[j++]);
                subNode.appendChild(subNode1);
            }
            node.appendChild(subNode);
            return node;
        }

        return null;
    }
项目:openjdk-jdk10    文件:BMPMetadata.java   
protected IIOMetadataNode getStandardDataNode() {
    IIOMetadataNode node = new IIOMetadataNode("Data");

    String bits = "";
    if (bitsPerPixel == 24)
        bits = "8 8 8 ";
    else if (bitsPerPixel == 16 || bitsPerPixel == 32) {
        bits = "" + countBits(redMask) + " " + countBits(greenMask) +
              countBits(blueMask) + "" + countBits(alphaMask);
    }

    IIOMetadataNode subNode = new IIOMetadataNode("BitsPerSample");
    subNode.setAttribute("value", bits);
    node.appendChild(subNode);

    return node;
}
项目:jdk8u-jdk    文件:COMMarkerSegment.java   
/**
 * Constructs a marker segment from a native tree node.  If the node
 * is an <code>IIOMetadataNode</code> and contains a user object,
 * that object is used rather than the string attribute.  If the
 * string attribute is used, the default encoding is used.
 */
COMMarkerSegment(Node node) throws IIOInvalidTreeException{
    super(JPEG.COM);
    if (node instanceof IIOMetadataNode) {
        IIOMetadataNode ourNode = (IIOMetadataNode) node;
        data = (byte []) ourNode.getUserObject();
    }
    if (data == null) {
        String comment =
            node.getAttributes().getNamedItem("comment").getNodeValue();
        if (comment != null) {
            data = comment.getBytes(); // Default encoding
        } else {
            throw new IIOInvalidTreeException("Empty comment node!", node);
        }
    }
}
项目:openjdk-jdk10    文件:ShortHistogramTest.java   
private IIOMetadataNode gethISTNode(BufferedImage bi) {
    IndexColorModel icm = (IndexColorModel)bi.getColorModel();
    int mapSize = icm.getMapSize();

    int[] hist = new int[mapSize];
    Arrays.fill(hist, 0);

    Raster r = bi.getData();
    for (int y = 0; y < bi.getHeight(); y++) {
        for (int x = 0; x < bi.getWidth(); x++) {
            int s = r.getSample(x, y, 0);
            hist[s] ++;
        }
    }

    IIOMetadataNode hIST = new IIOMetadataNode("hIST");
    for (int i = 0; i < hist.length; i++) {
        IIOMetadataNode n = new IIOMetadataNode("hISTEntry");
        n.setAttribute("index", "" + i);
        n.setAttribute("value", "" + hist[i]);
        hIST.appendChild(n);
    }

    return hIST;
}
项目:openjdk-jdk10    文件:BMPMetadata.java   
protected IIOMetadataNode getStandardChromaNode() {

        if ((palette != null) && (paletteSize > 0)) {
            IIOMetadataNode node = new IIOMetadataNode("Chroma");
            IIOMetadataNode subNode = new IIOMetadataNode("Palette");
            int numComps = palette.length / paletteSize;
            subNode.setAttribute("value", "" + numComps);

            for (int i = 0, j = 0; i < paletteSize; i++) {
                IIOMetadataNode subNode1 = new IIOMetadataNode("PaletteEntry");
                subNode1.setAttribute("index", ""+i);
                subNode1.setAttribute("red", "" + palette[j++]);
                subNode1.setAttribute("green", "" + palette[j++]);
                subNode1.setAttribute("blue", "" + palette[j++]);
                if (numComps == 4 && palette[j] != 0)
                    subNode1.setAttribute("alpha", "" + palette[j++]);
                subNode.appendChild(subNode1);
            }
            node.appendChild(subNode);
            return node;
        }

        return null;
    }
项目:openjdk-jdk10    文件:SetAttributeNode.java   
public static void test1() {
    IIOMetadataNode parent = new IIOMetadataNode("parent");
    IIOMetadataNode elem   = new IIOMetadataNode("elem");

    MyAttrNode attrNode = new MyAttrNode("name", "value");
    elem.setAttributeNode(attrNode);
    attrNode.setOwnerElement(elem);

    try {
        parent.setAttributeNode(attrNode);
    } catch (DOMException e) {
        if (e.code != DOMException.INUSE_ATTRIBUTE_ERR) {
            throw new RuntimeException("Test 1 failed: " +
                                       "Invalid exception code: " +
                                       e.code);
        }
        return;
    }

    throw new RuntimeException("Test 1 failed: DOMException not thrown");
}
项目:jdk8u-jdk    文件:SOSMarkerSegment.java   
IIOMetadataNode getNativeNode() {
    IIOMetadataNode node = new IIOMetadataNode("sos");
    node.setAttribute("numScanComponents",
                      Integer.toString(componentSpecs.length));
    node.setAttribute("startSpectralSelection",
                      Integer.toString(startSpectralSelection));
    node.setAttribute("endSpectralSelection",
                      Integer.toString(endSpectralSelection));
    node.setAttribute("approxHigh",
                      Integer.toString(approxHigh));
    node.setAttribute("approxLow",
                      Integer.toString(approxLow));
    for (int i = 0; i < componentSpecs.length; i++) {
        node.appendChild(componentSpecs[i].getNativeNode());
    }

    return node;
}
项目:jdk8u-jdk    文件:JFIFMarkerSegment.java   
/**
 * Returns a tree of DOM nodes representing this object and any
 * subordinate JFXX extension or ICC Profile segments.
 */
IIOMetadataNode getNativeNode() {
    IIOMetadataNode node = new IIOMetadataNode("app0JFIF");
    node.setAttribute("majorVersion", Integer.toString(majorVersion));
    node.setAttribute("minorVersion", Integer.toString(minorVersion));
    node.setAttribute("resUnits", Integer.toString(resUnits));
    node.setAttribute("Xdensity", Integer.toString(Xdensity));
    node.setAttribute("Ydensity", Integer.toString(Ydensity));
    node.setAttribute("thumbWidth", Integer.toString(thumbWidth));
    node.setAttribute("thumbHeight", Integer.toString(thumbHeight));
    if (!extSegments.isEmpty()) {
        IIOMetadataNode JFXXnode = new IIOMetadataNode("JFXX");
        node.appendChild(JFXXnode);
        for (Iterator iter = extSegments.iterator(); iter.hasNext();) {
            JFIFExtensionMarkerSegment seg =
                (JFIFExtensionMarkerSegment) iter.next();
            JFXXnode.appendChild(seg.getNativeNode());
        }
    }
    if (iccSegment != null) {
        node.appendChild(iccSegment.getNativeNode());
    }

    return node;
}
项目:jdk8u-jdk    文件:SOFMarkerSegment.java   
IIOMetadataNode getNativeNode() {
    IIOMetadataNode node = new IIOMetadataNode("sof");
    node.setAttribute("process", Integer.toString(tag-JPEG.SOF0));
    node.setAttribute("samplePrecision",
                      Integer.toString(samplePrecision));
    node.setAttribute("numLines",
                      Integer.toString(numLines));
    node.setAttribute("samplesPerLine",
                      Integer.toString(samplesPerLine));
    node.setAttribute("numFrameComponents",
                      Integer.toString(componentSpecs.length));
    for (int i = 0; i < componentSpecs.length; i++) {
        node.appendChild(componentSpecs[i].getNativeNode());
    }

    return node;
}
项目:openjdk-jdk10    文件:ITXtTest.java   
private static ITXtTest readFrom(File f) {
    try (ImageInputStream imageInputStream =
            ImageIO.createImageInputStream(f)) {

        ImageReader r = ImageIO.getImageReaders(imageInputStream).next();
        r.setInput(imageInputStream);

        IIOImage dst = r.readAll(0, null);

        // look for iTXt node
        IIOMetadata m = dst.getMetadata();
        Node root = m.getAsTree(m.getNativeMetadataFormatName());
        Node n = root.getFirstChild();
        while (n != null && !"iTXt".equals(n.getNodeName())) {
            n = n.getNextSibling();
        }
        if (n == null) {
            throw new RuntimeException("No iTXt node!");
        }
        ITXtTest t = ITXtTest.getFromNode((IIOMetadataNode)n);
        return t;
    } catch (Throwable e) {
        throw new RuntimeException("Reading test failed.", e);
    }
}
项目:jdk8u-jdk    文件:BMPMetadata.java   
protected IIOMetadataNode getStandardChromaNode() {

        if ((palette != null) && (paletteSize > 0)) {
            IIOMetadataNode node = new IIOMetadataNode("Chroma");
            IIOMetadataNode subNode = new IIOMetadataNode("Palette");
            int numComps = palette.length / paletteSize;
            subNode.setAttribute("value", "" + numComps);

            for (int i = 0, j = 0; i < paletteSize; i++) {
                IIOMetadataNode subNode1 = new IIOMetadataNode("PaletteEntry");
                subNode1.setAttribute("index", ""+i);
                subNode1.setAttribute("red", "" + palette[j++]);
                subNode1.setAttribute("green", "" + palette[j++]);
                subNode1.setAttribute("blue", "" + palette[j++]);
                if (numComps == 4 && palette[j] != 0)
                    subNode1.setAttribute("alpha", "" + palette[j++]);
                subNode.appendChild(subNode1);
            }
            node.appendChild(subNode);
            return node;
        }

        return null;
    }
项目:jdk8u-jdk    文件:BMPMetadata.java   
protected IIOMetadataNode getStandardDataNode() {
    IIOMetadataNode node = new IIOMetadataNode("Data");

    String bits = "";
    if (bitsPerPixel == 24)
        bits = "8 8 8 ";
    else if (bitsPerPixel == 16 || bitsPerPixel == 32) {
        bits = "" + countBits(redMask) + " " + countBits(greenMask) +
              countBits(blueMask) + "" + countBits(alphaMask);
    }

    IIOMetadataNode subNode = new IIOMetadataNode("BitsPerSample");
    subNode.setAttribute("value", bits);
    node.appendChild(subNode);

    return node;
}
项目:jdk8u-jdk    文件:SetAttributeNode.java   
public static void test1() {
    IIOMetadataNode parent = new IIOMetadataNode("parent");
    IIOMetadataNode elem   = new IIOMetadataNode("elem");

    MyAttrNode attrNode = new MyAttrNode("name", "value");
    elem.setAttributeNode(attrNode);
    attrNode.setOwnerElement(elem);

    try {
        parent.setAttributeNode(attrNode);
    } catch (DOMException e) {
        if (e.code != DOMException.INUSE_ATTRIBUTE_ERR) {
            throw new RuntimeException("Test 1 failed: " +
                                       "Invalid exception code: " +
                                       e.code);
        }
        return;
    }

    throw new RuntimeException("Test 1 failed: DOMException not thrown");
}
项目:jdk8u-jdk    文件:SetAttributeNode.java   
public static void test2() {
    String name = "attr";
    String oldValue = "old value";
    String newValue = "new value";
    Attr retAttr;

    IIOMetadataNode parent = new IIOMetadataNode("parent");
    MyAttrNode attrNode1 = new MyAttrNode(name, oldValue);
    MyAttrNode attrNode2 = new MyAttrNode(name, newValue);

    retAttr = parent.setAttributeNode(attrNode1);
    retAttr = parent.setAttributeNode(attrNode2);

    String actName = retAttr.getNodeName();
    String actValue = retAttr.getValue();

    if (!actName.equals(name) || !actValue.equals(oldValue)) {
        throw new RuntimeException("Test 2 failed: Invalid attribute " +
                                   "returned: " +
                                   "(name: " + actName +
                                   ", value: " + actValue + ")");
    }
}
项目:jdk8u-jdk    文件:SetAttributeNode.java   
public static void test4() {
    String name = "name";
    String correctValue = "correct value";
    String wrongValue = "wrong value";

    IIOMetadataNode parent = new IIOMetadataNode("parent");
    MyAttrNode attrNode1 = new MyAttrNode(name, wrongValue);
    MyAttrNode attrNode2 = new MyAttrNode(name, correctValue);

    parent.setAttributeNode(attrNode1);
    parent.setAttributeNode(attrNode2);

    Attr actAttr = parent.getAttributeNode(name);
    String actValue = actAttr.getValue();

    if (!actValue.equals(correctValue)) {
        throw new RuntimeException("Test 4 failed: Return value is: " +
                                   actValue);
    }
}
项目:jdk8u-jdk    文件:ITXtTest.java   
public static ITXtTest getFromNode(IIOMetadataNode n) {
    ITXtTest t = new ITXtTest();

    if (!"iTXt".equals(n.getNodeName())) {
        throw new RuntimeException("Invalid node");
    }
    IIOMetadataNode e = (IIOMetadataNode)n.getFirstChild();
    if (!"iTXtEntry".equals(e.getNodeName())) {
        throw new RuntimeException("Invalid entry node");
    }
    t.keyword = e.getAttribute("keyword");
    t.isCompressed =
        Boolean.valueOf(e.getAttribute("compressionFlag")).booleanValue();
    t.compression =
        Integer.valueOf(e.getAttribute("compressionMethod")).intValue();
    t.language = e.getAttribute("languageTag");
    t.trasKeyword = e.getAttribute("translatedKeyword");
    t.text = e.getAttribute("text");

    return t;
}
项目:jdk8u-jdk    文件:ITXtTest.java   
private static ITXtTest readFrom(File f) {
    try {
        ImageInputStream iis = ImageIO.createImageInputStream(f);
        ImageReader r = ImageIO.getImageReaders(iis).next();
        r.setInput(iis);

        IIOImage dst = r.readAll(0, null);

        // look for iTXt node
        IIOMetadata m = dst.getMetadata();
        Node root = m.getAsTree(m.getNativeMetadataFormatName());
        Node n = root.getFirstChild();
        while (n != null && !"iTXt".equals(n.getNodeName())) {
            n = n.getNextSibling();
        }
        if (n == null) {
            throw new RuntimeException("No iTXt node!");
        }
        ITXtTest t = ITXtTest.getFromNode((IIOMetadataNode)n);
        return t;
    } catch (Throwable e) {
        throw new RuntimeException("Reading test failed.", e);
    }
}
项目:jdk8u-jdk    文件:ShortHistogramTest.java   
private IIOMetadataNode gethISTNode(BufferedImage bi) {
    IndexColorModel icm = (IndexColorModel)bi.getColorModel();
    int mapSize = icm.getMapSize();

    int[] hist = new int[mapSize];
    Arrays.fill(hist, 0);

    Raster r = bi.getData();
    for (int y = 0; y < bi.getHeight(); y++) {
        for (int x = 0; x < bi.getWidth(); x++) {
            int s = r.getSample(x, y, 0);
            hist[s] ++;
        }
    }

    IIOMetadataNode hIST = new IIOMetadataNode("hIST");
    for (int i = 0; i < hist.length; i++) {
        IIOMetadataNode n = new IIOMetadataNode("hISTEntry");
        n.setAttribute("index", "" + i);
        n.setAttribute("value", "" + hist[i]);
        hIST.appendChild(n);
    }

    return hIST;
}
项目:openjdk-jdk10    文件:COMMarkerSegment.java   
/**
 * Constructs a marker segment from a native tree node.  If the node
 * is an {@code IIOMetadataNode} and contains a user object,
 * that object is used rather than the string attribute.  If the
 * string attribute is used, the default encoding is used.
 */
COMMarkerSegment(Node node) throws IIOInvalidTreeException{
    super(JPEG.COM);
    if (node instanceof IIOMetadataNode) {
        IIOMetadataNode ourNode = (IIOMetadataNode) node;
        data = (byte []) ourNode.getUserObject();
    }
    if (data == null) {
        String comment =
            node.getAttributes().getNamedItem("comment").getNodeValue();
        if (comment != null) {
            data = comment.getBytes(); // Default encoding
        } else {
            throw new IIOInvalidTreeException("Empty comment node!", node);
        }
    }
}
项目:openjdk-jdk10    文件:SOSMarkerSegment.java   
IIOMetadataNode getNativeNode() {
    IIOMetadataNode node = new IIOMetadataNode("sos");
    node.setAttribute("numScanComponents",
                      Integer.toString(componentSpecs.length));
    node.setAttribute("startSpectralSelection",
                      Integer.toString(startSpectralSelection));
    node.setAttribute("endSpectralSelection",
                      Integer.toString(endSpectralSelection));
    node.setAttribute("approxHigh",
                      Integer.toString(approxHigh));
    node.setAttribute("approxLow",
                      Integer.toString(approxLow));
    for (int i = 0; i < componentSpecs.length; i++) {
        node.appendChild(componentSpecs[i].getNativeNode());
    }

    return node;
}
项目:openjdk-jdk10    文件:JFIFMarkerSegment.java   
/**
 * Returns a tree of DOM nodes representing this object and any
 * subordinate JFXX extension or ICC Profile segments.
 */
IIOMetadataNode getNativeNode() {
    IIOMetadataNode node = new IIOMetadataNode("app0JFIF");
    node.setAttribute("majorVersion", Integer.toString(majorVersion));
    node.setAttribute("minorVersion", Integer.toString(minorVersion));
    node.setAttribute("resUnits", Integer.toString(resUnits));
    node.setAttribute("Xdensity", Integer.toString(Xdensity));
    node.setAttribute("Ydensity", Integer.toString(Ydensity));
    node.setAttribute("thumbWidth", Integer.toString(thumbWidth));
    node.setAttribute("thumbHeight", Integer.toString(thumbHeight));
    if (!extSegments.isEmpty()) {
        IIOMetadataNode JFXXnode = new IIOMetadataNode("JFXX");
        node.appendChild(JFXXnode);
        for (Iterator<JFIFExtensionMarkerSegment> iter =
                extSegments.iterator(); iter.hasNext();) {
            JFIFExtensionMarkerSegment seg = iter.next();
            JFXXnode.appendChild(seg.getNativeNode());
        }
    }
    if (iccSegment != null) {
        node.appendChild(iccSegment.getNativeNode());
    }

    return node;
}
项目:Helpers    文件:GifWriter.java   
@SuppressWarnings("ResultOfMethodCallIgnored")
public GifWriter(String filename, int msBetweenFrames, boolean repeat, boolean overwrite) throws IOException {
    File file = new File(filename + ".gif");
    if(overwrite && file.exists()) file.delete();

    this.writer = ImageIO.getImageWritersByFormatName("gif").next();
    this.output = ImageIO.createImageOutputStream(file);

    // Begining black magic
    imageWriteParam = writer.getDefaultWriteParam();
    ImageTypeSpecifier imageTypeSpecifier = ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_RGB);
    imageMetaData = writer.getDefaultImageMetadata(imageTypeSpecifier, imageWriteParam);
    String metaFormatName = imageMetaData.getNativeMetadataFormatName();
    IIOMetadataNode root = (IIOMetadataNode) imageMetaData.getAsTree(metaFormatName);
    IIOMetadataNode graphicsControlExtensionNode = getNode(root, "GraphicControlExtension");
    graphicsControlExtensionNode.setAttribute("delayTime", Integer.toString(msBetweenFrames / 10));
    IIOMetadataNode child = new IIOMetadataNode("ApplicationExtension");
    child.setAttribute("applicationID", "NETSCAPE");
    child.setAttribute("authenticationCode", "2.0");
    int loop = repeat ? 0 : 1;
    child.setUserObject(new byte[]{0x1, (byte) (loop & 0xFF), (byte) ((loop >> 8) & 0xFF)});
    getNode(root, "ApplicationExtensions").appendChild(child);
    imageMetaData.setFromTree(metaFormatName, root);
    // Ending black magic

    writer.setOutput(output);
    writer.prepareWriteSequence(null);
}
项目:openjdk-jdk10    文件:TIFFBaseJPEGCompressor.java   
private static List<Node> getAllNodes(IIOMetadataNode root, List<Node> nodes) {
    if(nodes == null) nodes = new ArrayList<Node>();

    if(root.hasChildNodes()) {
        Node sibling = root.getFirstChild();
        while(sibling != null) {
            nodes.add(sibling);
            nodes = getAllNodes((IIOMetadataNode)sibling, nodes);
            sibling = sibling.getNextSibling();
        }
    }

    return nodes;
}
项目:marathonv5    文件:ImagePanel.java   
private org.w3c.dom.Node getAnnotationNode(Annotation annotation, int i) {
    i++;
    String nodeKeyword = "a1810-" + i + "-" + annotation.getX() + "-" + annotation.getY() + "-" + annotation.getWidth() + "-"
            + annotation.getHeight();
    IIOMetadataNode node = new IIOMetadataNode("tEXtEntry");
    node.setAttribute("keyword", nodeKeyword);
    node.setAttribute("value", annotation.getText());
    return node;
}
项目:openjdk-jdk10    文件:PngCreationTimeTest.java   
public static void testMergeNativeTree() {
    // Merge a custom native metadata tree and inspect creation time
    if (pngMetadata != null) {
        try {
            IIOMetadataNode root = createNativeMetadataNodeTree();

            /*
             * Merge the native metadata tree created. The data should
             * reflect in Standard/Document/ImageCreationTime Node
             */
            pngMetadata.mergeTree("javax_imageio_png_1.0", root);
            Node keyNode = findNode(pngMetadata.getAsTree("javax_imageio_1.0"),
                    "ImageCreationTime");
            if (keyNode != null) {
                // Query the attributes of the node and check for the value
                NamedNodeMap attrMap = keyNode.getAttributes();
                String attrValue = attrMap.getNamedItem("year")
                                          .getNodeValue();
                int decYear = Integer.parseInt(attrValue);
                if (decYear != 2014) {
                    // Throw exception. Incorrect year value observed
                    reportExceptionAndFail("Test Failed: Incorrect"
                            + " creation time value observed.");
                }
            } else {
                // Throw exception.
                reportExceptionAndFail("Test Failed: Image creation"
                        + " time doesn't exist in metadata.");
            }
        } catch (IOException ex) {
            // Throw exception.
            reportExceptionAndFail("Test Failed: While executing"
                    + " mergeTree on metadata.");
        }
    }
}
项目:imagetozxspec    文件:GifConverter.java   
/**
 * Configures the per frame metadata
 * 
 * @param meta the default meta data
 * @param delayTime the amount of time a frame is to stay on screen in hundreds of a second (millisecond value/10)
 * @param imageIndex the index of this frame
 * @throws IIOInvalidTreeException if the meta data cannot be set
 */
private void configureMetaData(IIOMetadata meta, String delayTime, int imageIndex) throws IIOInvalidTreeException {
    String metaFormat = meta.getNativeMetadataFormatName();
    Node root = meta.getAsTree(metaFormat);
    Node child = root.getFirstChild();
    while (child != null) {
        if ("GraphicControlExtension".equals(child.getNodeName())) {
            break;
        }
        child = child.getNextSibling();
    }
    IIOMetadataNode gce = (IIOMetadataNode) child;
    gce.setAttribute("userDelay", "FALSE");
    gce.setAttribute("delayTime", delayTime);
    gce.setAttribute("disposalMethod", "none");

    if (imageIndex == 0) {
        IIOMetadataNode aes = new IIOMetadataNode("ApplicationExtensions");
        IIOMetadataNode ae = new IIOMetadataNode("ApplicationExtension");
        ae.setAttribute("applicationID", "NETSCAPE");
        ae.setAttribute("authenticationCode", "2.0");
        byte[] uo = new byte[] { 0x1, (byte) (LOOP_COUNT & 0xFF), (byte) ((LOOP_COUNT >> 8) & 0xFF) };
        ae.setUserObject(uo);
        aes.appendChild(ae);
        root.appendChild(aes);
    }
    meta.setFromTree(metaFormat, root);     
}
项目:OpenJSharp    文件:COMMarkerSegment.java   
/**
 * Returns an <code>IIOMetadataNode</code> containing the data array
 * as a user object and a string encoded using ISO-8895-1, as an
 * attribute.
 */
IIOMetadataNode getNativeNode() {
    IIOMetadataNode node = new IIOMetadataNode("com");
    node.setAttribute("comment", getComment());
    if (data != null) {
        node.setUserObject(data.clone());
    }
    return node;
}
项目:openjdk-jdk10    文件:SetAttributeNode.java   
public static void test3() {
    IIOMetadataNode parent = new IIOMetadataNode("parent");
    MyAttrNode attrNode = new MyAttrNode("name", "value");
    Attr retAttr = parent.setAttributeNode(attrNode);

    if (retAttr != null) {
        throw new RuntimeException("Test 3 failed: Return value is " +
                                   "non-null");
    }
}
项目:OpenJSharp    文件:DQTMarkerSegment.java   
Qtable(Node node) throws IIOInvalidTreeException {
    if (node.getNodeName().equals("dqtable")) {
        NamedNodeMap attrs = node.getAttributes();
        int count = attrs.getLength();
        if ((count < 1) || (count > 2)) {
            throw new IIOInvalidTreeException
                ("dqtable node must have 1 or 2 attributes", node);
        }
        elementPrecision = 0;
        tableID = getAttributeValue(node, attrs, "qtableId", 0, 3, true);
        if (node instanceof IIOMetadataNode) {
            IIOMetadataNode ourNode = (IIOMetadataNode) node;
            JPEGQTable table = (JPEGQTable) ourNode.getUserObject();
            if (table == null) {
                throw new IIOInvalidTreeException
                    ("dqtable node must have user object", node);
            }
            data = table.getTable();
        } else {
            throw new IIOInvalidTreeException
                ("dqtable node must have user object", node);
        }
    } else {
        throw new IIOInvalidTreeException
            ("Invalid node, expected dqtable", node);
    }
}
项目:OpenJSharp    文件:DHTMarkerSegment.java   
IIOMetadataNode getNativeNode() {
    IIOMetadataNode node = new IIOMetadataNode("dht");
    for (int i= 0; i<tables.size(); i++) {
        Htable table = (Htable) tables.get(i);
        node.appendChild(table.getNativeNode());
    }
    return node;
}
项目:OpenJSharp    文件:DHTMarkerSegment.java   
Htable(Node node) throws IIOInvalidTreeException {
    if (node.getNodeName().equals("dhtable")) {
        NamedNodeMap attrs = node.getAttributes();
        int count = attrs.getLength();
        if (count != 2) {
            throw new IIOInvalidTreeException
                ("dhtable node must have 2 attributes", node);
        }
        tableClass = getAttributeValue(node, attrs, "class", 0, 1, true);
        tableID = getAttributeValue(node, attrs, "htableId", 0, 3, true);
        if (node instanceof IIOMetadataNode) {
            IIOMetadataNode ourNode = (IIOMetadataNode) node;
            JPEGHuffmanTable table =
                (JPEGHuffmanTable) ourNode.getUserObject();
            if (table == null) {
                throw new IIOInvalidTreeException
                    ("dhtable node must have user object", node);
            }
            numCodes = table.getLengths();
            values = table.getValues();
        } else {
            throw new IIOInvalidTreeException
                ("dhtable node must have user object", node);
        }
    } else {
        throw new IIOInvalidTreeException
            ("Invalid node, expected dqtable", node);
    }

}
项目:OpenJSharp    文件:DHTMarkerSegment.java   
IIOMetadataNode getNativeNode() {
    IIOMetadataNode node = new IIOMetadataNode("dhtable");
    node.setAttribute("class", Integer.toString(tableClass));
    node.setAttribute("htableId", Integer.toString(tableID));

    node.setUserObject(new JPEGHuffmanTable(numCodes, values));

    return node;
}
项目:openjdk-jdk10    文件:JFIFMarkerSegment.java   
ICCMarkerSegment(Node node) throws IIOInvalidTreeException {
    super(JPEG.APP2);
    if (node instanceof IIOMetadataNode) {
        IIOMetadataNode ourNode = (IIOMetadataNode) node;
        ICC_Profile prof = (ICC_Profile) ourNode.getUserObject();
        if (prof != null) {  // May be null
            profile = prof.getData();
        }
    }
}
项目:openjdk-jdk10    文件:AdobeMarkerSegment.java   
IIOMetadataNode getNativeNode() {
    IIOMetadataNode node = new IIOMetadataNode("app14Adobe");
    node.setAttribute("version", Integer.toString(version));
    node.setAttribute("flags0", Integer.toString(flags0));
    node.setAttribute("flags1", Integer.toString(flags1));
    node.setAttribute("transform", Integer.toString(transform));

    return node;
}
项目:OpenJSharp    文件:JFIFMarkerSegment.java   
IIOMetadataNode getNativeNode() {
    IIOMetadataNode node = new IIOMetadataNode("JFIFthumbJPEG");
    if (thumbMetadata != null) {
        node.appendChild(thumbMetadata.getNativeTree());
    }
    return node;
}