⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pngmetadata.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                if (pHYs_present && pHYs_unitSpecifier == PHYS_UNIT_METER) {            node = new IIOMetadataNode("HorizontalPixelSize");            node.setAttribute("value",                              Float.toString(1000.0F/pHYs_pixelsPerUnitXAxis));            dimension_node.appendChild(node);            node = new IIOMetadataNode("VerticalPixelSize");            node.setAttribute("value",                              Float.toString(1000.0F/pHYs_pixelsPerUnitYAxis));            dimension_node.appendChild(node);        }        return dimension_node;    }    public IIOMetadataNode getStandardDocumentNode() {        if (!tIME_present) {            return null;        }        IIOMetadataNode document_node = new IIOMetadataNode("Document");        IIOMetadataNode node = null; // scratch node        node = new IIOMetadataNode("ImageModificationTime");        node.setAttribute("year", Integer.toString(tIME_year));        node.setAttribute("month", Integer.toString(tIME_month));        node.setAttribute("day", Integer.toString(tIME_day));        node.setAttribute("hour", Integer.toString(tIME_hour));        node.setAttribute("minute", Integer.toString(tIME_minute));        node.setAttribute("second", Integer.toString(tIME_second));        document_node.appendChild(node);        return document_node;    }    public IIOMetadataNode getStandardTextNode() {        int numEntries = tEXt_keyword.size() +            iTXt_keyword.size() + zTXt_keyword.size();        if (numEntries == 0) {            return null;        }        IIOMetadataNode text_node = new IIOMetadataNode("Text");        IIOMetadataNode node = null; // scratch node        for (int i = 0; i < tEXt_keyword.size(); i++) {            node = new IIOMetadataNode("TextEntry");            node.setAttribute("keyword", (String)tEXt_keyword.get(i));            node.setAttribute("value", (String)tEXt_text.get(i));            node.setAttribute("encoding", "ISO-8859-1");            node.setAttribute("compression", "none");                        text_node.appendChild(node);        }        for (int i = 0; i < iTXt_keyword.size(); i++) {            node = new IIOMetadataNode("TextEntry");            node.setAttribute("keyword", (String)iTXt_keyword.get(i));            node.setAttribute("value", (String)iTXt_text.get(i));            node.setAttribute("language",                              (String)iTXt_languageTag.get(i));            if (((Integer)iTXt_compressionFlag.get(i)).intValue() == 1) {                node.setAttribute("compression", "deflate");            } else {                node.setAttribute("compression", "none");            }                        text_node.appendChild(node);        }        for (int i = 0; i < zTXt_keyword.size(); i++) {            node = new IIOMetadataNode("TextEntry");            node.setAttribute("keyword", (String)zTXt_keyword.get(i));            node.setAttribute("value", (String)zTXt_text.get(i));            node.setAttribute("compression", "deflate");                        text_node.appendChild(node);        }        return text_node;    }    public IIOMetadataNode getStandardTransparencyNode() {        IIOMetadataNode transparency_node =            new IIOMetadataNode("Transparency");        IIOMetadataNode node = null; // scratch node        node = new IIOMetadataNode("Alpha");        boolean hasAlpha =             (IHDR_colorType == PNGImageReader.PNG_COLOR_RGB_ALPHA) ||            (IHDR_colorType == PNGImageReader.PNG_COLOR_GRAY_ALPHA) ||            (IHDR_colorType == PNGImageReader.PNG_COLOR_PALETTE &&             tRNS_present &&             (tRNS_colorType == IHDR_colorType) &&             (tRNS_alpha != null));        node.setAttribute("value", hasAlpha ? "nonpremultipled" : "none");         transparency_node.appendChild(node);        if (tRNS_present) {            node = new IIOMetadataNode("TransparentColor");            if (tRNS_colorType == PNGImageReader.PNG_COLOR_RGB) {                node.setAttribute("value",                                  Integer.toString(tRNS_red) + " " +                                  Integer.toString(tRNS_green) + " " +                                  Integer.toString(tRNS_blue));            } else if (tRNS_colorType == PNGImageReader.PNG_COLOR_GRAY) {                node.setAttribute("value", Integer.toString(tRNS_gray));            }            transparency_node.appendChild(node);        }        return transparency_node;    }    // Shorthand for throwing an IIOInvalidTreeException    private void fatal(Node node, String reason)        throws IIOInvalidTreeException {        throw new IIOInvalidTreeException(reason, node);    }    // Get an integer-valued attribute    private String getStringAttribute(Node node, String name,                                      String defaultValue, boolean required)        throws IIOInvalidTreeException {        Node attr = node.getAttributes().getNamedItem(name);        if (attr == null) {            if (!required) {                return defaultValue;            } else {                fatal(node, "Required attribute " + name + " not present!");            }        }        return attr.getNodeValue();    }    // Get an integer-valued attribute    private int getIntAttribute(Node node, String name,                                int defaultValue, boolean required)        throws IIOInvalidTreeException {        String value = getStringAttribute(node, name, null, required);        if (value == null) {            return defaultValue;        }        return Integer.parseInt(value);    }    // Get a float-valued attribute    private float getFloatAttribute(Node node, String name,                                    float defaultValue, boolean required)        throws IIOInvalidTreeException {        String value = getStringAttribute(node, name, null, required);        if (value == null) {            return defaultValue;        }        return Float.parseFloat(value);    }    // Get a required integer-valued attribute    private int getIntAttribute(Node node, String name)        throws IIOInvalidTreeException {        return getIntAttribute(node, name, -1, true);    }    // Get a required float-valued attribute    private float getFloatAttribute(Node node, String name)        throws IIOInvalidTreeException {        return getFloatAttribute(node, name, -1.0F, true);    }    // Get a boolean-valued attribute    private boolean getBooleanAttribute(Node node, String name,                                        boolean defaultValue,                                         boolean required)        throws IIOInvalidTreeException {        Node attr = node.getAttributes().getNamedItem(name);        if (attr == null) {            if (!required) {                return defaultValue;            } else {                fatal(node, "Required attribute " + name + " not present!");            }        }        String value = attr.getNodeValue();        if (value.equals("true")) {            return true;        } else if (value.equals("false")) {            return false;        } else {            fatal(node, "Attribute " + name + " must be 'true' or 'false'!");            return false;        }    }    // Get a required boolean-valued attribute    private boolean getBooleanAttribute(Node node, String name)        throws IIOInvalidTreeException {        return getBooleanAttribute(node, name, false, true);    }    // Get an enumerated attribute as an index into a String array    private int getEnumeratedAttribute(Node node,                                       String name, String[] legalNames,                                       int defaultValue, boolean required)         throws IIOInvalidTreeException {        Node attr = node.getAttributes().getNamedItem(name);        if (attr == null) {            if (!required) {                return defaultValue;            } else {                fatal(node, "Required attribute " + name + " not present!");            }        }        String value = attr.getNodeValue();        for (int i = 0; i < legalNames.length; i++) {            if (value.equals(legalNames[i])) {                return i;            }        }        fatal(node, "Illegal value for attribute " + name + "!");        return -1;    }    // Get a required enumerated attribute as an index into a String array    private int getEnumeratedAttribute(Node node,                                       String name, String[] legalNames)        throws IIOInvalidTreeException {        return getEnumeratedAttribute(node, name, legalNames, -1, true);    }    // Get a String-valued attribute    private String getAttribute(Node node, String name,                                String defaultValue, boolean required)        throws IIOInvalidTreeException {        Node attr = node.getAttributes().getNamedItem(name);        if (attr == null) {            if (!required) {                return defaultValue;            } else {                fatal(node, "Required attribute " + name + " not present!");            }        }        return attr.getNodeValue();    }    // Get a required String-valued attribute    private String getAttribute(Node node, String name)        throws IIOInvalidTreeException {            return getAttribute(node, name, null, true);    }    public void mergeTree(String formatName, Node root)        throws IIOInvalidTreeException {        if (formatName.equals(nativeMetadataFormatName)) {            if (root == null) {                throw new IllegalArgumentException("root == null!");            }            mergeNativeTree(root);        } else if (formatName.equals                   (IIOMetadataFormatImpl.standardMetadataFormatName)) {            if (root == null) {                throw new IllegalArgumentException("root == null!");            }            mergeStandardTree(root);        } else {            throw new IllegalArgumentException("Not a recognized format!");        }    }    private void mergeNativeTree(Node root)        throws IIOInvalidTreeException {        Node node = root;        if (!node.getNodeName().equals(nativeMetadataFormatName)) {            fatal(node, "Root must be " + nativeMetadataFormatName);        }                node = node.getFirstChild();        while (node != null) {            String name = node.getNodeName();                        if (name.equals("IHDR")) {                IHDR_width = getIntAttribute(node, "width");                IHDR_height = getIntAttribute(node, "height");                IHDR_bitDepth = getEnumeratedAttribute(node, "bitDepth",                                                       IHDR_bitDepths);                IHDR_colorType = getEnumeratedAttribute(node, "colorType",                                                        IHDR_colorTypeNames);                IHDR_compressionMethod =                    getEnumeratedAttribute(node, "compressionMethod",                                           IHDR_compressionMethodNames);                IHDR_filterMethod =                    getEnumeratedAttribute(node,                                           "filterMethod",                                           IHDR_filterMethodNames);                IHDR_interlaceMethod =                    getEnumeratedAttribute(node, "interlaceMethod",                                           IHDR_interlaceMethodNames);                IHDR_present = true;            } else if (name.equals("PLTE")) {                byte[] red = new byte[256];                byte[] green  = new byte[256];                byte[] blue = new byte[256];                int maxindex = -1;                                Node PLTE_entry = node.getFirstChild();                if (PLTE_entry == null) {                    fatal(node, "Palette has no entries!");                }                while (PLTE_entry != null) {                    if (!PLTE_entry.getNodeName().equals("PLTEEntry")) {                        fatal(node,                              "Only a PLTEEntry may be a child of a PLTE!");                    }                                        int index = getIntAttribute(PLTE_entry, "index");                    if (index < 0 || index > 255) {                        fatal(node,                              "Bad value for PLTEEntry attribute index!");                    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -