143 lines · 6.5 KB · Java
RawDownload
/* * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.  Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package com.sun.imageio.plugins.jpeg; import java.util.ListResourceBundle; public class JPEGImageMetadataFormatResources       extends JPEGMetadataFormatResources {     static final Object[][] imageContents = {        // Node name, followed by description        { "JPEGvariety", "A node grouping all marker segments specific to the variety of stream being read/written (e.g. JFIF) - may be empty" },        { "markerSequence", "A node grouping all non-jfif marker segments" },        { "app0jfif", "A JFIF APP0 marker segment" },        { "app14Adobe", "An Adobe APP14 marker segment" },        { "sof", "A Start Of Frame marker segment" },        { "sos", "A Start Of Scan marker segment" },        { "app0JFXX", "A JFIF extension marker segment" },        { "app2ICC", "An ICC profile APP2 marker segment" },        { "JFIFthumbJPEG",          "A JFIF thumbnail in JPEG format (no JFIF segments permitted)" },        { "JFIFthumbPalette", "A JFIF thumbnail as an RGB indexed image" },        { "JFIFthumbRGB", "A JFIF thumbnail as an RGB image" },        { "componentSpec", "A component specification for a frame" },        { "scanComponentSpec", "A component specification for a scan" },         // Node name + "/" + AttributeName, followed by description        { "app0JFIF/majorVersion",          "The major JFIF version number" },        { "app0JFIF/minorVersion",          "The minor JFIF version number" },        { "app0JFIF/resUnits",          "The resolution units for Xdensity and Ydensity "          + "(0 = no units, just aspect ratio; 1 = dots/inch; 2 = dots/cm)" },        { "app0JFIF/Xdensity",          "The horizontal density or aspect ratio numerator" },        { "app0JFIF/Ydensity",          "The vertical density or aspect ratio denominator" },        { "app0JFIF/thumbWidth",          "The width of the thumbnail, or 0 if there isn't one" },        { "app0JFIF/thumbHeight",          "The height of the thumbnail, or 0 if there isn't one" },        { "app0JFXX/extensionCode",          "The JFXX extension code identifying thumbnail type: "          + "(16 = JPEG, 17 = indexed, 19 = RGB" },        { "JFIFthumbPalette/thumbWidth",          "The width of the thumbnail" },        { "JFIFthumbPalette/thumbHeight",          "The height of the thumbnail" },        { "JFIFthumbRGB/thumbWidth",          "The width of the thumbnail" },        { "JFIFthumbRGB/thumbHeight",          "The height of the thumbnail" },        { "app14Adobe/version",          "The version of Adobe APP14 marker segment" },        { "app14Adobe/flags0",          "The flags0 variable of an APP14 marker segment" },        { "app14Adobe/flags1",          "The flags1 variable of an APP14 marker segment" },        { "app14Adobe/transform",          "The color transform applied to the image "          + "(0 = Unknown, 1 = YCbCr, 2 = YCCK)" },        { "sof/process",          "The JPEG process (0 = Baseline sequential, "          + "1 = Extended sequential, 2 = Progressive)" },        { "sof/samplePrecision",          "The number of bits per sample" },        { "sof/numLines",          "The number of lines in the image" },        { "sof/samplesPerLine",          "The number of samples per line" },        { "sof/numFrameComponents",          "The number of components in the image" },        { "componentSpec/componentId",          "The id for this component" },        { "componentSpec/HsamplingFactor",          "The horizontal sampling factor for this component" },        { "componentSpec/VsamplingFactor",          "The vertical sampling factor for this component" },        { "componentSpec/QtableSelector",          "The quantization table to use for this component" },        { "sos/numScanComponents",          "The number of components in the scan" },        { "sos/startSpectralSelection",          "The first spectral band included in this scan" },        { "sos/endSpectralSelection",          "The last spectral band included in this scan" },        { "sos/approxHigh",          "The highest bit position included in this scan" },        { "sos/approxLow",          "The lowest bit position included in this scan" },        { "scanComponentSpec/componentSelector",          "The id of this component" },        { "scanComponentSpec/dcHuffTable",          "The huffman table to use for encoding DC coefficients" },        { "scanComponentSpec/acHuffTable",          "The huffman table to use for encoding AC coefficients" }    };     public JPEGImageMetadataFormatResources() {}     protected Object[][] getContents() {        // return a copy of the combined commonContents and imageContents;        // in theory we want a deep clone of the combined arrays,        // but since it only contains (immutable) Strings, this shallow        // copy is sufficient        Object[][] combinedContents =            new Object[commonContents.length + imageContents.length][2];        int combined = 0;        for (int i = 0; i < commonContents.length; i++, combined++) {            combinedContents[combined][0] = commonContents[i][0];            combinedContents[combined][1] = commonContents[i][1];        }        for (int i = 0; i < imageContents.length; i++, combined++) {            combinedContents[combined][0] = imageContents[i][0];            combinedContents[combined][1] = imageContents[i][1];        }        return combinedContents;    }}