View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.imaging.formats.tiff.constants;
18  
19  import java.util.Arrays;
20  import java.util.Collections;
21  import java.util.List;
22  
23  import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
24  import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
25  import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAsciiOrRational;
26  import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoBytes;
27  import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
28  import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRational;
29  import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRationals;
30  import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSShorts;
31  import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
32  import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShorts;
33  import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoUndefineds;
34  
35  /**
36   */
37  public final class TiffEpTagConstants {
38  
39      public static final TagInfoShorts EXIF_TAG_CFAREPEAT_PATTERN_DIM = new TagInfoShorts("CFARepeatPatternDim", 0x828d, 2,
40              TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
41  
42      public static final TagInfoBytes EXIF_TAG_CFAPATTERN_2 = new TagInfoBytes("CFAPattern2", 0x828e, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
43  
44      public static final TagInfoAsciiOrRational EXIF_TAG_BATTERY_LEVEL = new TagInfoAsciiOrRational("BatteryLevel", 0x828f, -1,
45              TiffDirectoryType.TIFF_DIRECTORY_ROOT);
46  
47      public static final TagInfoUndefineds EXIF_TAG_INTER_COLOR_PROFILE = new TagInfoUndefineds("InterColorProfile", 0x8773, -1,
48              TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
49  
50      public static final TagInfoShort EXIF_TAG_INTERLACE = new TagInfoShort("Interlace", 0x8829, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
51  
52      public static final TagInfoSShorts EXIF_TAG_TIME_ZONE_OFFSET = new TagInfoSShorts("TimeZoneOffset", 0x882a, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD);
53  
54      public static final TagInfoShort EXIF_TAG_SELF_TIMER_MODE = new TagInfoShort("SelfTimerMode", 0x882b, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD);
55  
56      public static final TagInfoRationals EXIF_TAG_FLASH_ENERGY = new TagInfoRationals("FlashEnergy", 0x920b, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
57  
58      public static final TagInfoUndefineds EXIF_TAG_SPATIAL_FREQUENCY_RESPONSE_1 = new TagInfoUndefineds("SpatialFrequencyResponse", 0x920c, -1,
59              TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
60  
61      public static final TagInfoUndefineds EXIF_TAG_NOISE_1 = new TagInfoUndefineds("Noise", 0x920d, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
62  
63      public static final TagInfoRational EXIF_TAG_FOCAL_PLANE_XRESOLUTION = new TagInfoRational("FocalPlaneXResolution", 0x920e,
64              TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
65  
66      public static final TagInfoRational EXIF_TAG_FOCAL_PLANE_YRESOLUTION = new TagInfoRational("FocalPlaneYResolution", 0x920f,
67              TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
68  
69      public static final TagInfoShort EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT = new TagInfoShort("FocalPlaneResolutionUnit", 0x9210,
70              TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
71      public static final int FOCAL_PLANE_RESOLUTION_UNIT_VALUE_NONE = 1;
72      public static final int FOCAL_PLANE_RESOLUTION_UNIT_VALUE_INCHES = 2;
73      public static final int FOCAL_PLANE_RESOLUTION_UNIT_VALUE_CM = 3;
74      public static final int FOCAL_PLANE_RESOLUTION_UNIT_VALUE_MM = 4;
75      public static final int FOCAL_PLANE_RESOLUTION_UNIT_VALUE_UM = 5;
76  
77      public static final TagInfoLong EXIF_TAG_IMAGE_NUMBER_EXIF_IFD = new TagInfoLong("ImageNumber", 0x9211, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD);
78  
79      public static final TagInfoAscii EXIF_TAG_SECURITY_CLASSIFICATION_EXIF_IFD = new TagInfoAscii("SecurityClassification", 0x9212, -1,
80              TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD);
81  
82      public static final TagInfoAscii EXIF_TAG_IMAGE_HISTORY_EXIF_IFD = new TagInfoAscii("ImageHistory", 0x9213, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD);
83  
84      public static final TagInfoRationals EXIF_TAG_EXPOSURE_INDEX = new TagInfoRationals("ExposureIndex", 0x9215, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
85  
86      public static final TagInfoBytes EXIF_TAG_TIFF_EPSTANDARD_ID_1 = new TagInfoBytes("TIFF/EPStandardID", 0x9216, 4, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
87  
88      public static final TagInfoShort EXIF_TAG_SENSING_METHOD = new TagInfoShort("SensingMethod", 0x9217, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
89      public static final int SENSING_METHOD_VALUE_MONOCHROME_AREA = 1;
90      public static final int SENSING_METHOD_VALUE_ONE_CHIP_COLOR_AREA = 2;
91      public static final int SENSING_METHOD_VALUE_TWO_CHIP_COLOR_AREA = 3;
92      public static final int SENSING_METHOD_VALUE_THREE_CHIP_COLOR_AREA = 4;
93      public static final int SENSING_METHOD_VALUE_COLOR_SEQUENTIAL_AREA = 5;
94      public static final int SENSING_METHOD_VALUE_MONOCHROME_LINEAR = 6;
95      public static final int SENSING_METHOD_VALUE_TRILINEAR = 7;
96      public static final int SENSING_METHOD_VALUE_COLOR_SEQUENTIAL_LINEAR = 8;
97  
98      public static final List<TagInfo> ALL_TIFF_EP_TAGS = Collections.unmodifiableList(Arrays.asList(EXIF_TAG_CFAREPEAT_PATTERN_DIM, EXIF_TAG_CFAPATTERN_2,
99              EXIF_TAG_BATTERY_LEVEL, EXIF_TAG_INTER_COLOR_PROFILE, EXIF_TAG_INTERLACE, EXIF_TAG_TIME_ZONE_OFFSET, EXIF_TAG_SELF_TIMER_MODE,
100             EXIF_TAG_FLASH_ENERGY, EXIF_TAG_SPATIAL_FREQUENCY_RESPONSE_1, EXIF_TAG_NOISE_1, EXIF_TAG_FOCAL_PLANE_XRESOLUTION, EXIF_TAG_FOCAL_PLANE_YRESOLUTION,
101             EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT, EXIF_TAG_IMAGE_NUMBER_EXIF_IFD, EXIF_TAG_SECURITY_CLASSIFICATION_EXIF_IFD, EXIF_TAG_IMAGE_HISTORY_EXIF_IFD,
102             EXIF_TAG_EXPOSURE_INDEX, EXIF_TAG_TIFF_EPSTANDARD_ID_1, EXIF_TAG_SENSING_METHOD));
103 
104     private TiffEpTagConstants() {
105     }
106 }