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

📄 jpegimagemetadataformat.java

📁 java1.6众多例子参考
💻 JAVA
字号:
/* * @(#)JPEGImageMetadataFormat.java	1.13 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.imageio.plugins.jpeg;import javax.imageio.metadata.IIOMetadataFormat;import javax.imageio.metadata.IIOMetadataFormatImpl;import javax.imageio.ImageTypeSpecifier;import java.awt.color.ICC_Profile;import java.awt.color.ColorSpace;import java.awt.image.ColorModel;import java.util.List;import java.util.ArrayList;public class JPEGImageMetadataFormat extends JPEGMetadataFormat {    private static JPEGImageMetadataFormat theInstance = null;    private JPEGImageMetadataFormat() {        super(JPEG.nativeImageMetadataFormatName,              CHILD_POLICY_ALL);        addElement("JPEGvariety",                    JPEG.nativeImageMetadataFormatName,                   CHILD_POLICY_CHOICE);        addElement("markerSequence",                    JPEG.nativeImageMetadataFormatName,                   CHILD_POLICY_SEQUENCE);        addElement("app0JFIF", "JPEGvariety", CHILD_POLICY_SOME);        addStreamElements("markerSequence");        addElement("app14Adobe", "markerSequence", CHILD_POLICY_EMPTY);        addElement("sof", "markerSequence", 1, 4);        addElement("sos", "markerSequence", 1, 4);        addElement("JFXX", "app0JFIF", 1, Integer.MAX_VALUE);        addElement("app0JFXX", "JFXX", CHILD_POLICY_CHOICE);        addElement("app2ICC", "app0JFIF", CHILD_POLICY_EMPTY);        addAttribute("app0JFIF",                      "majorVersion",                      DATATYPE_INTEGER,                     false,                     "1",                     "0", "255",                     true, true);        addAttribute("app0JFIF",                      "minorVersion",                      DATATYPE_INTEGER,                     false,                     "2",                     "0", "255",                     true, true);        List resUnits = new ArrayList();        resUnits.add("0");        resUnits.add("1");        resUnits.add("2");        addAttribute("app0JFIF",                      "resUnits",                     DATATYPE_INTEGER,                     false,                     "0",                     resUnits);        addAttribute("app0JFIF",                      "Xdensity",                     DATATYPE_INTEGER,                     false,                     "1",                     "1", "65535",                     true, true);        addAttribute("app0JFIF",                      "Ydensity",                     DATATYPE_INTEGER,                     false,                     "1",                     "1", "65535",                     true, true);        addAttribute("app0JFIF",                      "thumbWidth",                     DATATYPE_INTEGER,                     false,                     "0",                     "0", "255",                     true, true);        addAttribute("app0JFIF",                      "thumbHeight",                     DATATYPE_INTEGER,                     false,                     "0",                     "0", "255",                     true, true);        addElement("JFIFthumbJPEG", "app0JFXX", CHILD_POLICY_SOME);        addElement("JFIFthumbPalette", "app0JFXX", CHILD_POLICY_EMPTY);        addElement("JFIFthumbRGB", "app0JFXX", CHILD_POLICY_EMPTY);        List codes = new ArrayList();        codes.add("16"); // Hex 10        codes.add("17"); // Hex 11        codes.add("19"); // Hex 13        addAttribute("app0JFXX",                      "extensionCode",                      DATATYPE_INTEGER,                     false,                     null,                     codes);        addChildElement("markerSequence", "JFIFthumbJPEG");        addAttribute("JFIFthumbPalette",                      "thumbWidth",                     DATATYPE_INTEGER,                     false,                     null,                     "0", "255",                     true, true);        addAttribute("JFIFthumbPalette",                      "thumbHeight",                     DATATYPE_INTEGER,                     false,                     null,                     "0", "255",                     true, true);        addAttribute("JFIFthumbRGB",                      "thumbWidth",                     DATATYPE_INTEGER,                     false,                     null,                     "0", "255",                     true, true);        addAttribute("JFIFthumbRGB",                      "thumbHeight",                     DATATYPE_INTEGER,                     false,                     null,                     "0", "255",                     true, true);        addObjectValue("app2ICC", ICC_Profile.class, false, null);        addAttribute("app14Adobe",                      "version",                      DATATYPE_INTEGER,                     false,                     "100",                     "100", "255",                     true, true);        addAttribute("app14Adobe",                      "flags0",                     DATATYPE_INTEGER,                     false,                     "0",                     "0", "65535",                     true, true);        addAttribute("app14Adobe",                      "flags1",                     DATATYPE_INTEGER,                     false,                     "0",                     "0", "65535",                     true, true);        List transforms = new ArrayList();        transforms.add("0");        transforms.add("1");        transforms.add("2");        addAttribute("app14Adobe",                      "transform",                     DATATYPE_INTEGER,                     true,                     null,                     transforms);        addElement("componentSpec", "sof", CHILD_POLICY_EMPTY);        List procs = new ArrayList();        procs.add("0");        procs.add("1");        procs.add("2");        addAttribute("sof",                      "process",                      DATATYPE_INTEGER,                     false,                     null,                     procs);        addAttribute("sof",                     "samplePrecision",                     DATATYPE_INTEGER,                     false,                     "8");        addAttribute("sof",                     "numLines",                     DATATYPE_INTEGER,                     false,                     null,                     "0", "65535",                     true, true);        addAttribute("sof",                     "samplesPerLine",                     DATATYPE_INTEGER,                     false,                     null,                     "0", "65535",                     true, true);        List comps = new ArrayList();        comps.add("1");        comps.add("2");        comps.add("3");        comps.add("4");        addAttribute("sof",                     "numFrameComponents",                     DATATYPE_INTEGER,                     false,                     null,                     comps);        addAttribute("componentSpec",                     "componentId",                     DATATYPE_INTEGER,                     true,                     null,                     "0", "255",                     true, true);        addAttribute("componentSpec",                     "HsamplingFactor",                     DATATYPE_INTEGER,                     true,                     null,                     "1", "255",                     true, true);        addAttribute("componentSpec",                     "VsamplingFactor",                     DATATYPE_INTEGER,                     true,                     null,                     "1", "255",                     true, true);        List tabids = new ArrayList();        tabids.add("0");        tabids.add("1");        tabids.add("2");        tabids.add("3");        addAttribute("componentSpec",                     "QtableSelector",                     DATATYPE_INTEGER,                     true,                     null,                     tabids);        addElement("scanComponentSpec", "sos", CHILD_POLICY_EMPTY);        addAttribute("sos",                      "numScanComponents",                     DATATYPE_INTEGER,                     true,                     null,                     comps);        addAttribute("sos",                     "startSpectralSelection",                      DATATYPE_INTEGER,                     false,                     "0",                     "0", "63",                     true, true);        addAttribute("sos",                     "endSpectralSelection",                      DATATYPE_INTEGER,                     false,                     "63",                     "0", "63",                     true, true);        addAttribute("sos",                     "approxHigh",                      DATATYPE_INTEGER,                     false,                     "0",                     "0", "15",                     true, true);        addAttribute("sos",                     "approxLow",                      DATATYPE_INTEGER,                     false,                     "0",                     "0", "15",                     true, true);        addAttribute("scanComponentSpec",                     "componentSelector",                     DATATYPE_INTEGER,                     true,                     null,                     "0", "255",                     true, true);        addAttribute("scanComponentSpec",                     "dcHuffTable",                     DATATYPE_INTEGER,                     true,                     null,                     tabids);        addAttribute("scanComponentSpec",                     "acHuffTable",                     DATATYPE_INTEGER,                     true,                     null,                     tabids);    }    public boolean canNodeAppear(String elementName,                                 ImageTypeSpecifier imageType) {        // All images can have these        if (elementName.equals(getRootName())            || elementName.equals("JPEGvariety")            || isInSubtree(elementName, "markerSequence")) {            return true;        }        // If it is an element in the app0jfif subtree, just check        // that the image type is JFIF compliant.        if ((isInSubtree(elementName, "app0JFIF"))             && JPEG.isJFIFcompliant(imageType, true)) {            return true;        }                return false;    }    public static synchronized IIOMetadataFormat getInstance() {        if (theInstance == null) {            theInstance = new JPEGImageMetadataFormat();        }        return theInstance;    }}

⌨️ 快捷键说明

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