| /* |
| * 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; |
| } |
| } |