001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.commons.imaging.formats.tiff.constants; 018 019import java.util.Arrays; 020import java.util.Collections; 021import java.util.List; 022 023import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo; 024import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii; 025import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte; 026import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoBytes; 027import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoDirectory; 028import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoDouble; 029import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoGpsText; 030import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong; 031import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLongs; 032import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRational; 033import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRationals; 034import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSLong; 035import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSRational; 036import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort; 037import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShortOrLong; 038import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShorts; 039import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoUndefined; 040import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoUndefineds; 041import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoUnknowns; 042 043/** 044 * References: 045 * <ul> 046 * <li>https://exiftool.org/TagNames/EXIF.html</li> 047 * <li>[BROKEN URL] http://tiki-lounge.com/~raf/tiff/fields.html</li> 048 * <li>https://www.awaresystems.be/imaging/tiff/tifftags.html</li> 049 * <li>"Stonits": http://www.anyhere.com/gward/pixformat/tiffluv.html</li> 050 * </ul> 051 */ 052public final class ExifTagConstants { 053 054 public static final TagInfoAscii EXIF_TAG_INTEROPERABILITY_INDEX = new TagInfoAscii("InteroperabilityIndex", 0x0001, -1, 055 TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD); 056 public static final TagInfoUndefined EXIF_TAG_INTEROPERABILITY_VERSION = new TagInfoUndefined("InteroperabilityVersion", 0x0002, 057 TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD); 058 public static final TagInfoAscii EXIF_TAG_PROCESSING_SOFTWARE = new TagInfoAscii("ProcessingSoftware", 0x000b, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); 059 public static final TagInfoAscii EXIF_TAG_SOFTWARE = new TagInfoAscii("Software", 0x0131, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); 060 public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_START_IFD0 = new TagInfoLong("PreviewImageStart", 0x0111, TiffDirectoryType.EXIF_DIRECTORY_IFD0, 061 true); 062 public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_START_SUB_IFD1 = new TagInfoLong("PreviewImageStart", 0x0111, 063 TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD1, true); 064 public static final TagInfoLong EXIF_TAG_JPG_FROM_RAW_START_SUB_IFD2 = new TagInfoLong("JpgFromRawStart", 0x0111, TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD2, 065 true); 066 public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_LENGTH_IFD0 = new TagInfoLong("PreviewImageLength", 0x0117, TiffDirectoryType.EXIF_DIRECTORY_IFD0); 067 public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_LENGTH_SUB_IFD1 = new TagInfoLong("PreviewImageLength", 0x0117, 068 TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD1); 069 public static final TagInfoLong EXIF_TAG_JPG_FROM_RAW_LENGTH_SUB_IFD2 = new TagInfoLong("JpgFromRawLength", 0x0117, 070 TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD2); 071 public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_START_MAKER_NOTES = new TagInfoLong("PreviewImageStart", 0x0201, 072 TiffDirectoryType.EXIF_DIRECTORY_MAKER_NOTES); 073 public static final TagInfoLong EXIF_TAG_JPG_FROM_RAW_START_SUB_IFD = new TagInfoLong("JpgFromRawStart", 0x0201, TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD, 074 true); 075 public static final TagInfoLong EXIF_TAG_JPG_FROM_RAW_START_IFD2 = new TagInfoLong("JpgFromRawStart", 0x0201, TiffDirectoryType.EXIF_DIRECTORY_IFD2, true); 076 public static final TagInfoLong EXIF_TAG_OTHER_IMAGE_START = new TagInfoLong("OtherImageStart", 0x0201, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN, true); 077 public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_LENGTH_MAKER_NOTES = new TagInfoLong("PreviewImageLength", 0x0202, 078 TiffDirectoryType.EXIF_DIRECTORY_MAKER_NOTES); 079 public static final TagInfoLong EXIF_TAG_JPG_FROM_RAW_LENGTH_SUB_IFD = new TagInfoLong("JpgFromRawLength", 0x0202, 080 TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD); 081 public static final TagInfoLong EXIF_TAG_JPG_FROM_RAW_LENGTH_IFD2 = new TagInfoLong("JpgFromRawLength", 0x0202, TiffDirectoryType.EXIF_DIRECTORY_IFD2); 082 public static final TagInfoLong EXIF_TAG_OTHER_IMAGE_LENGTH = new TagInfoLong("OtherImageLength", 0x0202, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 083 public static final TagInfoBytes EXIF_TAG_APPLICATION_NOTES = new TagInfoBytes("ApplicationNotes", 0x02bc, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 084 public static final TagInfoUnknowns EXIF_TAG_MATTEING = new TagInfoUnknowns("Matteing", 0x80e3, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 085 public static final TagInfoUnknowns EXIF_TAG_DATA_TYPE = new TagInfoUnknowns("DataType", 0x80e4, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 086 public static final TagInfoUnknowns EXIF_TAG_IMAGE_DEPTH = new TagInfoUnknowns("ImageDepth", 0x80e5, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 087 public static final TagInfoUnknowns EXIF_TAG_TILE_DEPTH = new TagInfoUnknowns("TileDepth", 0x80e6, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 088 public static final TagInfoUnknowns EXIF_TAG_MODEL_2 = new TagInfoUnknowns("Model2", 0x827d, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 089 public static final TagInfoRationals EXIF_TAG_EXPOSURE_TIME = new TagInfoRationals("ExposureTime", 0x829a, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 090 public static final TagInfoRationals EXIF_TAG_FNUMBER = new TagInfoRationals("FNumber", 0x829d, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 091 // FIXME: other types? 092 public static final TagInfoLong EXIF_TAG_IPTC_NAA = new TagInfoLong("IPTC-NAA", 0x83bb, TiffDirectoryType.EXIF_DIRECTORY_IFD0); 093 public static final TagInfoShorts EXIF_TAG_INTERGRAPH_PACKET_DATA = new TagInfoShorts("IntergraphPacketData", 0x847e, -1, 094 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 095 public static final TagInfoLongs EXIF_TAG_INTERGRAPH_FLAG_REGISTERS = new TagInfoLongs("IntergraphFlagRegisters", 0x847f, 16, 096 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 097 public static final TagInfoAscii EXIF_TAG_SITE = new TagInfoAscii("Site", 0x84e0, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 098 public static final TagInfoAscii EXIF_TAG_COLOR_SEQUENCE = new TagInfoAscii("ColorSequence", 0x84e1, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 099 public static final TagInfoAscii EXIF_TAG_IT8HEADER = new TagInfoAscii("IT8Header", 0x84e2, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 100 public static final TagInfoShort EXIF_TAG_RASTER_PADDING = new TagInfoShort("RasterPadding", 0x84e3, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 101 public static final TagInfoShort EXIF_TAG_BITS_PER_RUN_LENGTH = new TagInfoShort("BitsPerRunLength", 0x84e4, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 102 public static final TagInfoShort EXIF_TAG_BITS_PER_EXTENDED_RUN_LENGTH = new TagInfoShort("BitsPerExtendedRunLength", 0x84e5, 103 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 104 public static final TagInfoBytes EXIF_TAG_COLOR_TABLE = new TagInfoBytes("ColorTable", 0x84e6, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 105 public static final TagInfoByte EXIF_TAG_IMAGE_COLOR_INDICATOR = new TagInfoByte("ImageColorIndicator", 0x84e7, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 106 public static final TagInfoByte EXIF_TAG_BACKGROUND_COLOR_INDICATOR = new TagInfoByte("BackgroundColorIndicator", 0x84e8, 107 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 108 public static final TagInfoBytes EXIF_TAG_IMAGE_COLOR_VALUE = new TagInfoBytes("ImageColorValue", 0x84e9, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 109 public static final TagInfoBytes EXIF_TAG_BACKGROUND_COLOR_VALUE = new TagInfoBytes("BackgroundColorValue", 0x84ea, -1, 110 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 111 public static final TagInfoBytes EXIF_TAG_PIXEL_INTENSITY_RANGE = new TagInfoBytes("PixelIntensityRange", 0x84eb, -1, 112 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 113 public static final TagInfoByte EXIF_TAG_TRANSPARENCY_INDICATOR = new TagInfoByte("TransparencyIndicator", 0x84ec, 114 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 115 public static final TagInfoAscii EXIF_TAG_COLOR_CHARACTERIZATION = new TagInfoAscii("ColorCharacterization", 0x84ed, -1, 116 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 117 public static final TagInfoShortOrLong EXIF_TAG_HCUSAGE = new TagInfoShortOrLong("HCUsage", 0x84ee, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 118 public static final TagInfoAscii EXIF_TAG_SEMINFO = new TagInfoAscii("SEMInfo", 0x8546, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); 119 public static final TagInfoLong EXIF_TAG_AFCP_IPTC = new TagInfoLong("AFCP_IPTC", 0x8568, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 120 public static final TagInfoLong EXIF_TAG_LEAF_DATA = new TagInfoLong("LeafData", 0x8606, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 121 public static final TagInfoBytes EXIF_TAG_PHOTOSHOP_SETTINGS = new TagInfoBytes("PhotoshopSettings", 0x8649, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 122 public static final TagInfoDirectory EXIF_TAG_EXIF_OFFSET = new TagInfoDirectory("ExifOffset", 0x8769, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 123 public static final TagInfoShort EXIF_TAG_EXPOSURE_PROGRAM = new TagInfoShort("ExposureProgram", 0x8822, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 124 public static final int EXPOSURE_PROGRAM_VALUE_MANUAL = 1; 125 public static final int EXPOSURE_PROGRAM_VALUE_PROGRAM_AE = 2; 126 public static final int EXPOSURE_PROGRAM_VALUE_APERTURE_PRIORITY_AE = 3; 127 public static final int EXPOSURE_PROGRAM_VALUE_SHUTTER_SPEED_PRIORITY_AE = 4; 128 public static final int EXPOSURE_PROGRAM_VALUE_CREATIVE_SLOW_SPEED = 5; 129 public static final int EXPOSURE_PROGRAM_VALUE_ACTION_HIGH_SPEED = 6; 130 public static final int EXPOSURE_PROGRAM_VALUE_PORTRAIT = 7; 131 public static final int EXPOSURE_PROGRAM_VALUE_LANDSCAPE = 8; 132 public static final TagInfoAscii EXIF_TAG_SPECTRAL_SENSITIVITY = new TagInfoAscii("SpectralSensitivity", 0x8824, -1, 133 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 134 public static final TagInfoDirectory EXIF_TAG_GPSINFO = new TagInfoDirectory("GPSInfo", 0x8825, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 135 public static final TagInfoShorts EXIF_TAG_ISO = new TagInfoShorts("PhotographicSensitivity", 0x8827, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 136 public static final TagInfoUndefineds EXIF_TAG_OPTO_ELECTRIC_CONV_FACTOR = new TagInfoUndefineds("Opto - Electric Conv Factor", 0x8828, -1, 137 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 138 public static final TagInfoLong EXIF_TAG_LEAF_SUB_IFD = new TagInfoLong("LeafSubIFD", 0x888a, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 139 public static final TagInfoUndefineds EXIF_TAG_EXIF_VERSION = new TagInfoUndefineds("ExifVersion", 0x9000, 4, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 140 public static final TagInfoAscii EXIF_TAG_DATE_TIME_ORIGINAL = new TagInfoAscii("DateTimeOriginal", 0x9003, 20, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 141 public static final TagInfoAscii EXIF_TAG_DATE_TIME_DIGITIZED = new TagInfoAscii("DateTimeDigitized", 0x9004, 20, 142 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 143 public static final TagInfoUndefineds EXIF_TAG_COMPONENTS_CONFIGURATION = new TagInfoUndefineds("ComponentsConfiguration", 0x9101, 4, 144 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 145 public static final TagInfoRational EXIF_TAG_COMPRESSED_BITS_PER_PIXEL = new TagInfoRational("CompressedBitsPerPixel", 0x9102, 146 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 147 public static final TagInfoSRational EXIF_TAG_SHUTTER_SPEED_VALUE = new TagInfoSRational("ShutterSpeedValue", 0x9201, 148 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 149 public static final TagInfoRational EXIF_TAG_APERTURE_VALUE = new TagInfoRational("ApertureValue", 0x9202, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 150 public static final TagInfoSRational EXIF_TAG_BRIGHTNESS_VALUE = new TagInfoSRational("BrightnessValue", 0x9203, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 151 public static final TagInfoSRational EXIF_TAG_EXPOSURE_COMPENSATION = new TagInfoSRational("ExposureCompensation", 0x9204, 152 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 153 public static final TagInfoRational EXIF_TAG_MAX_APERTURE_VALUE = new TagInfoRational("MaxApertureValue", 0x9205, 154 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 155 public static final TagInfoRationals EXIF_TAG_SUBJECT_DISTANCE = new TagInfoRationals("Subject Distance", 0x9206, -1, 156 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 157 public static final TagInfoShort EXIF_TAG_METERING_MODE = new TagInfoShort("MeteringMode", 0x9207, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 158 public static final int METERING_MODE_VALUE_AVERAGE = 1; 159 public static final int METERING_MODE_VALUE_CENTER_WEIGHTED_AVERAGE = 2; 160 public static final int METERING_MODE_VALUE_SPOT = 3; 161 public static final int METERING_MODE_VALUE_MULTI_SPOT = 4; 162 public static final int METERING_MODE_VALUE_MULTI_SEGMENT = 5; 163 public static final int METERING_MODE_VALUE_PARTIAL = 6; 164 public static final int METERING_MODE_VALUE_OTHER = 255; 165 public static final TagInfoShort EXIF_TAG_LIGHT_SOURCE = new TagInfoShort("LightSource", 0x9208, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 166 public static final int LIGHT_SOURCE_VALUE_DAYLIGHT = 1; 167 public static final int LIGHT_SOURCE_VALUE_FLUORESCENT = 2; 168 public static final int LIGHT_SOURCE_VALUE_TUNGSTEN = 3; 169 public static final int LIGHT_SOURCE_VALUE_FLASH = 4; 170 public static final int LIGHT_SOURCE_VALUE_FINE_WEATHER = 9; 171 public static final int LIGHT_SOURCE_VALUE_CLOUDY = 10; 172 public static final int LIGHT_SOURCE_VALUE_SHADE = 11; 173 public static final int LIGHT_SOURCE_VALUE_DAYLIGHT_FLUORESCENT = 12; 174 public static final int LIGHT_SOURCE_VALUE_DAY_WHITE_FLUORESCENT = 13; 175 public static final int LIGHT_SOURCE_VALUE_COOL_WHITE_FLUORESCENT = 14; 176 public static final int LIGHT_SOURCE_VALUE_WHITE_FLUORESCENT = 15; 177 public static final int LIGHT_SOURCE_VALUE_STANDARD_LIGHT_A = 17; 178 public static final int LIGHT_SOURCE_VALUE_STANDARD_LIGHT_B = 18; 179 public static final int LIGHT_SOURCE_VALUE_STANDARD_LIGHT_C = 19; 180 public static final int LIGHT_SOURCE_VALUE_D55 = 20; 181 public static final int LIGHT_SOURCE_VALUE_D65 = 21; 182 public static final int LIGHT_SOURCE_VALUE_D75 = 22; 183 public static final int LIGHT_SOURCE_VALUE_D50 = 23; 184 public static final int LIGHT_SOURCE_VALUE_ISO_STUDIO_TUNGSTEN = 24; 185 public static final int LIGHT_SOURCE_VALUE_OTHER = 255; 186 public static final TagInfoShort EXIF_TAG_FLASH = new TagInfoShort("Flash", 0x9209, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 187 public static final int FLASH_VALUE_NO_FLASH = 0x0; 188 public static final int FLASH_VALUE_FIRED = 0x1; 189 public static final int FLASH_VALUE_FIRED_RETURN_NOT_DETECTED = 0x5; 190 public static final int FLASH_VALUE_FIRED_RETURN_DETECTED = 0x7; 191 public static final int FLASH_VALUE_ON_DID_NOT_FIRE = 0x8; 192 public static final int FLASH_VALUE_ON = 0x9; 193 public static final int FLASH_VALUE_ON_RETURN_NOT_DETECTED = 0xd; 194 public static final int FLASH_VALUE_ON_RETURN_DETECTED = 0xf; 195 public static final int FLASH_VALUE_OFF = 0x10; 196 public static final int FLASH_VALUE_OFF_DID_NOT_FIRE_RETURN_NOT_DETECTED = 0x14; 197 public static final int FLASH_VALUE_AUTO_DID_NOT_FIRE = 0x18; 198 public static final int FLASH_VALUE_AUTO_FIRED = 0x19; 199 public static final int FLASH_VALUE_AUTO_FIRED_RETURN_NOT_DETECTED = 0x1d; 200 public static final int FLASH_VALUE_AUTO_FIRED_RETURN_DETECTED = 0x1f; 201 public static final int FLASH_VALUE_NO_FLASH_FUNCTION = 0x20; 202 public static final int FLASH_VALUE_OFF_NO_FLASH_FUNCTION = 0x30; 203 public static final int FLASH_VALUE_FIRED_RED_EYE_REDUCTION = 0x41; 204 public static final int FLASH_VALUE_FIRED_RED_EYE_REDUCTION_RETURN_NOT_DETECTED = 0x45; 205 public static final int FLASH_VALUE_FIRED_RED_EYE_REDUCTION_RETURN_DETECTED = 0x47; 206 public static final int FLASH_VALUE_ON_RED_EYE_REDUCTION = 0x49; 207 public static final int FLASH_VALUE_ON_RED_EYE_REDUCTION_RETURN_NOT_DETECTED = 0x4d; 208 public static final int FLASH_VALUE_ON_RED_EYE_REDUCTION_RETURN_DETECTED = 0x4f; 209 public static final int FLASH_VALUE_OFF_RED_EYE_REDUCTION = 0x50; 210 public static final int FLASH_VALUE_AUTO_DID_NOT_FIRE_RED_EYE_REDUCTION = 0x58; 211 public static final int FLASH_VALUE_AUTO_FIRED_RED_EYE_REDUCTION = 0x59; 212 public static final int FLASH_VALUE_AUTO_FIRED_RED_EYE_REDUCTION_RETURN_NOT_DETECTED = 0x5d; 213 public static final int FLASH_VALUE_AUTO_FIRED_RED_EYE_REDUCTION_RETURN_DETECTED = 0x5f; 214 public static final TagInfoRationals EXIF_TAG_FOCAL_LENGTH = new TagInfoRationals("FocalLength", 0x920a, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 215 public static final TagInfoShorts EXIF_TAG_SUBJECT_AREA = new TagInfoShorts("SubjectArea", 0x9214, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 216 public static final TagInfoDouble EXIF_TAG_STO_NITS = new TagInfoDouble("StoNits", 0x923f, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 217 public static final TagInfoUndefineds EXIF_TAG_MAKER_NOTE = new TagInfoUndefineds("MakerNote", 0x927c, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 218 public static final TagInfoGpsText EXIF_TAG_USER_COMMENT = new TagInfoGpsText("UserComment", 0x9286, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 219 public static final TagInfoAscii EXIF_TAG_SUB_SEC_TIME = new TagInfoAscii("SubSecTime", 0x9290, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 220 public static final TagInfoAscii EXIF_TAG_SUB_SEC_TIME_ORIGINAL = new TagInfoAscii("SubSecTimeOriginal", 0x9291, -1, 221 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 222 public static final TagInfoAscii EXIF_TAG_SUB_SEC_TIME_DIGITIZED = new TagInfoAscii("SubSecTimeDigitized", 0x9292, -1, 223 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 224 public static final TagInfoUndefineds EXIF_TAG_FLASHPIX_VERSION = new TagInfoUndefineds("FlashpixVersion", 0xa000, 4, 225 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 226 public static final TagInfoShort EXIF_TAG_EXIF_IMAGE_WIDTH = new TagInfoShort("ExifImageWidth", 0xa002, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 227 public static final TagInfoShort EXIF_TAG_EXIF_IMAGE_LENGTH = new TagInfoShort("ExifImageLength", 0xa003, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 228 public static final TagInfoAscii EXIF_TAG_RELATED_SOUND_FILE = new TagInfoAscii("RelatedSoundFile", 0xa004, 13, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 229 public static final TagInfoDirectory EXIF_TAG_INTEROP_OFFSET = new TagInfoDirectory("InteropOffset", 0xa005, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 230 public static final TagInfoRationals EXIF_TAG_FLASH_ENERGY_EXIF_IFD = new TagInfoRationals("FlashEnergy", 0xa20b, -1, 231 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 232 public static final TagInfoUndefineds EXIF_TAG_SPATIAL_FREQUENCY_RESPONSE_2 = new TagInfoUndefineds("SpatialFrequencyResponse", 0xa20c, -1, 233 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 234 public static final TagInfoUnknowns EXIF_TAG_NOISE_2 = new TagInfoUnknowns("Noise", 0xa20d, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 235 public static final TagInfoRational EXIF_TAG_FOCAL_PLANE_XRESOLUTION_EXIF_IFD = new TagInfoRational("FocalPlaneXResolution", 0xa20e, 236 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 237 public static final TagInfoRational EXIF_TAG_FOCAL_PLANE_YRESOLUTION_EXIF_IFD = new TagInfoRational("FocalPlaneYResolution", 0xa20f, 238 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 239 public static final TagInfoShort EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD = new TagInfoShort("FocalPlaneResolutionUnit", 0xa210, 240 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 241 public static final int FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD_VALUE_NONE = 1; 242 public static final int FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD_VALUE_INCHES = 2; 243 public static final int FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD_VALUE_CM = 3; 244 public static final int FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD_VALUE_MM = 4; 245 public static final int FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD_VALUE_UM = 5; 246 public static final TagInfoUnknowns EXIF_TAG_IMAGE_NUMBER = new TagInfoUnknowns("ImageNumber", 0xa211, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 247 public static final TagInfoUnknowns EXIF_TAG_SECURITY_CLASSIFICATION = new TagInfoUnknowns("SecurityClassification", 0xa212, -1, 248 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 249 public static final TagInfoUnknowns EXIF_TAG_IMAGE_HISTORY = new TagInfoUnknowns("ImageHistory", 0xa213, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 250 public static final TagInfoShorts EXIF_TAG_SUBJECT_LOCATION = new TagInfoShorts("SubjectLocation", 0xa214, 2, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 251 public static final TagInfoRational EXIF_TAG_EXPOSURE_INDEX_EXIF_IFD = new TagInfoRational("ExposureIndex", 0xa215, 252 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 253 public static final TagInfoUnknowns EXIF_TAG_TIFF_EPSTANDARD_ID_2 = new TagInfoUnknowns("TIFF-EPStandardID", 0xa216, -1, 254 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 255 public static final TagInfoShort EXIF_TAG_SENSING_METHOD_EXIF_IFD = new TagInfoShort("SensingMethod", 0xa217, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 256 public static final int SENSING_METHOD_EXIF_IFD_VALUE_NOT_DEFINED = 1; 257 public static final int SENSING_METHOD_EXIF_IFD_VALUE_ONE_CHIP_COLOR_AREA = 2; 258 public static final int SENSING_METHOD_EXIF_IFD_VALUE_TWO_CHIP_COLOR_AREA = 3; 259 public static final int SENSING_METHOD_EXIF_IFD_VALUE_THREE_CHIP_COLOR_AREA = 4; 260 public static final int SENSING_METHOD_EXIF_IFD_VALUE_COLOR_SEQUENTIAL_AREA = 5; 261 public static final int SENSING_METHOD_EXIF_IFD_VALUE_TRILINEAR = 7; 262 public static final int SENSING_METHOD_EXIF_IFD_VALUE_COLOR_SEQUENTIAL_LINEAR = 8; 263 public static final TagInfoUndefined EXIF_TAG_FILE_SOURCE = new TagInfoUndefined("FileSource", 0xa300, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 264 public static final int FILE_SOURCE_VALUE_FILM_SCANNER = 1; 265 public static final int FILE_SOURCE_VALUE_REFLECTION_PRINT_SCANNER = 2; 266 public static final int FILE_SOURCE_VALUE_DIGITAL_CAMERA = 3; 267 public static final TagInfoUndefined EXIF_TAG_SCENE_TYPE = new TagInfoUndefined("SceneType", 0xa301, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 268 public static final TagInfoUndefineds EXIF_TAG_CFAPATTERN = new TagInfoUndefineds("CFAPattern", 0xa302, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 269 public static final TagInfoShort EXIF_TAG_CUSTOM_RENDERED = new TagInfoShort("CustomRendered", 0xa401, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 270 public static final int CUSTOM_RENDERED_VALUE_NORMAL = 0; 271 public static final int CUSTOM_RENDERED_VALUE_CUSTOM = 1; 272 public static final TagInfoShort EXIF_TAG_EXPOSURE_MODE = new TagInfoShort("ExposureMode", 0xa402, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 273 public static final int EXPOSURE_MODE_VALUE_AUTO = 0; 274 public static final int EXPOSURE_MODE_VALUE_MANUAL = 1; 275 public static final int EXPOSURE_MODE_VALUE_AUTO_BRACKET = 2; 276 public static final TagInfoShort EXIF_TAG_WHITE_BALANCE_1 = new TagInfoShort("WhiteBalance", 0xa403, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 277 public static final int WHITE_BALANCE_1_VALUE_AUTO = 0; 278 public static final int WHITE_BALANCE_1_VALUE_MANUAL = 1; 279 public static final TagInfoRational EXIF_TAG_DIGITAL_ZOOM_RATIO = new TagInfoRational("DigitalZoomRatio", 0xa404, 280 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 281 public static final TagInfoShort EXIF_TAG_FOCAL_LENGTH_IN_35MM_FORMAT = new TagInfoShort("FocalLengthIn35mmFormat", 0xa405, 282 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 283 public static final TagInfoShort EXIF_TAG_SCENE_CAPTURE_TYPE = new TagInfoShort("SceneCaptureType", 0xa406, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 284 public static final int SCENE_CAPTURE_TYPE_VALUE_STANDARD = 0; 285 public static final int SCENE_CAPTURE_TYPE_VALUE_LANDSCAPE = 1; 286 public static final int SCENE_CAPTURE_TYPE_VALUE_PORTRAIT = 2; 287 public static final int SCENE_CAPTURE_TYPE_VALUE_NIGHT = 3; 288 public static final TagInfoShort EXIF_TAG_GAIN_CONTROL = new TagInfoShort("GainControl", 0xa407, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 289 public static final int GAIN_CONTROL_VALUE_NONE = 0; 290 public static final int GAIN_CONTROL_VALUE_LOW_GAIN_UP = 1; 291 public static final int GAIN_CONTROL_VALUE_HIGH_GAIN_UP = 2; 292 public static final int GAIN_CONTROL_VALUE_LOW_GAIN_DOWN = 3; 293 public static final int GAIN_CONTROL_VALUE_HIGH_GAIN_DOWN = 4; 294 public static final TagInfoShort EXIF_TAG_CONTRAST_1 = new TagInfoShort("Contrast", 0xa408, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 295 public static final int CONTRAST_1_VALUE_NORMAL = 0; 296 public static final int CONTRAST_1_VALUE_LOW = 1; 297 public static final int CONTRAST_1_VALUE_HIGH = 2; 298 public static final TagInfoShort EXIF_TAG_SATURATION_1 = new TagInfoShort("Saturation", 0xa409, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 299 public static final int SATURATION_1_VALUE_NORMAL = 0; 300 public static final int SATURATION_1_VALUE_LOW = 1; 301 public static final int SATURATION_1_VALUE_HIGH = 2; 302 public static final TagInfoShort EXIF_TAG_SHARPNESS_1 = new TagInfoShort("Sharpness", 0xa40a, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 303 public static final int SHARPNESS_1_VALUE_NORMAL = 0; 304 public static final int SHARPNESS_1_VALUE_SOFT = 1; 305 public static final int SHARPNESS_1_VALUE_HARD = 2; 306 public static final TagInfoUndefineds EXIF_TAG_DEVICE_SETTING_DESCRIPTION = new TagInfoUndefineds("DeviceSettingDescription", 0xa40b, -1, 307 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 308 public static final TagInfoShort EXIF_TAG_SUBJECT_DISTANCE_RANGE = new TagInfoShort("SubjectDistanceRange", 0xa40c, 309 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 310 public static final int SUBJECT_DISTANCE_RANGE_VALUE_MACRO = 1; 311 public static final int SUBJECT_DISTANCE_RANGE_VALUE_CLOSE = 2; 312 public static final int SUBJECT_DISTANCE_RANGE_VALUE_DISTANT = 3; 313 public static final TagInfoAscii EXIF_TAG_IMAGE_UNIQUE_ID = new TagInfoAscii("ImageUniqueID", 0xa420, 33, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 314 public static final TagInfoAscii EXIF_TAG_CAMERA_OWNER_NAME = new TagInfoAscii("CameraOwnerName", 0xa430, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 315 public static final TagInfoAscii EXIF_TAG_BODY_SERIAL_NUMBER = new TagInfoAscii("BodySerialNumber", 0xa431, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 316 public static final TagInfoRationals EXIF_TAG_LENS_SPECIFICATION = new TagInfoRationals("LensSpecification", 0xa432, 4, 317 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 318 public static final TagInfoAscii EXIF_TAG_LENS_MAKE = new TagInfoAscii("LensMake", 0xa433, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 319 public static final TagInfoAscii EXIF_TAG_LENS_MODEL = new TagInfoAscii("LensModel", 0xa434, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 320 public static final TagInfoAscii EXIF_TAG_LENS_SERIAL_NUMBER = new TagInfoAscii("LensSerialNumber", 0xa435, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 321 public static final TagInfoRational EXIF_TAG_GAMMA = new TagInfoRational("Gamma", 0xa500, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 322 public static final TagInfoUnknowns EXIF_TAG_ANNOTATIONS = new TagInfoUnknowns("Annotations", 0xc44f, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 323 public static final TagInfoUndefined EXIF_TAG_PRINT_IM = new TagInfoUndefined("PrintIM", 0xc4a5, TiffDirectoryType.EXIF_DIRECTORY_IFD0); 324 public static final TagInfoSLong EXIF_TAG_OFFSET_SCHEMA = new TagInfoSLong("OffsetSchema", 0xea1d, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 325 public static final TagInfoAscii EXIF_TAG_OWNER_NAME = new TagInfoAscii("OwnerName", 0xfde8, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 326 public static final TagInfoAscii EXIF_TAG_SERIAL_NUMBER = new TagInfoAscii("SerialNumber", 0xfde9, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 327 public static final TagInfoAscii EXIF_TAG_LENS = new TagInfoAscii("Lens", 0xfdea, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 328 public static final TagInfoAscii EXIF_TAG_RAW_FILE = new TagInfoAscii("RawFile", 0xfe4c, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 329 public static final TagInfoAscii EXIF_TAG_CONVERTER = new TagInfoAscii("Converter", 0xfe4d, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 330 public static final TagInfoAscii EXIF_TAG_WHITE_BALANCE_2 = new TagInfoAscii("WhiteBalance", 0xfe4e, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 331 public static final TagInfoAscii EXIF_TAG_EXPOSURE = new TagInfoAscii("Exposure", 0xfe51, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 332 public static final TagInfoAscii EXIF_TAG_SHADOWS = new TagInfoAscii("Shadows", 0xfe52, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 333 public static final TagInfoAscii EXIF_TAG_BRIGHTNESS = new TagInfoAscii("Brightness", 0xfe53, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 334 public static final TagInfoAscii EXIF_TAG_CONTRAST_2 = new TagInfoAscii("Contrast", 0xfe54, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 335 public static final TagInfoAscii EXIF_TAG_SATURATION_2 = new TagInfoAscii("Saturation", 0xfe55, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 336 public static final TagInfoAscii EXIF_TAG_SHARPNESS_2 = new TagInfoAscii("Sharpness", 0xfe56, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 337 public static final TagInfoAscii EXIF_TAG_SMOOTHNESS = new TagInfoAscii("Smoothness", 0xfe57, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 338 public static final TagInfoAscii EXIF_TAG_MOIRE_FILTER = new TagInfoAscii("MoireFilter", 0xfe58, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 339 340 public static final List<TagInfo> ALL_EXIF_TAGS = Collections.unmodifiableList(Arrays.asList(EXIF_TAG_INTEROPERABILITY_INDEX, 341 EXIF_TAG_INTEROPERABILITY_VERSION, EXIF_TAG_PROCESSING_SOFTWARE, EXIF_TAG_SOFTWARE, EXIF_TAG_PREVIEW_IMAGE_START_IFD0, 342 EXIF_TAG_PREVIEW_IMAGE_START_SUB_IFD1, EXIF_TAG_JPG_FROM_RAW_START_SUB_IFD2, EXIF_TAG_PREVIEW_IMAGE_LENGTH_IFD0, 343 EXIF_TAG_PREVIEW_IMAGE_LENGTH_SUB_IFD1, EXIF_TAG_JPG_FROM_RAW_LENGTH_SUB_IFD2, EXIF_TAG_PREVIEW_IMAGE_START_MAKER_NOTES, 344 EXIF_TAG_JPG_FROM_RAW_START_SUB_IFD, EXIF_TAG_JPG_FROM_RAW_START_IFD2, EXIF_TAG_OTHER_IMAGE_START, EXIF_TAG_PREVIEW_IMAGE_LENGTH_MAKER_NOTES, 345 EXIF_TAG_JPG_FROM_RAW_LENGTH_SUB_IFD, EXIF_TAG_JPG_FROM_RAW_LENGTH_IFD2, EXIF_TAG_OTHER_IMAGE_LENGTH, EXIF_TAG_APPLICATION_NOTES, EXIF_TAG_MATTEING, 346 EXIF_TAG_DATA_TYPE, EXIF_TAG_IMAGE_DEPTH, EXIF_TAG_TILE_DEPTH, EXIF_TAG_MODEL_2, EXIF_TAG_EXPOSURE_TIME, EXIF_TAG_FNUMBER, EXIF_TAG_IPTC_NAA, 347 EXIF_TAG_INTERGRAPH_PACKET_DATA, EXIF_TAG_INTERGRAPH_FLAG_REGISTERS, EXIF_TAG_SITE, EXIF_TAG_COLOR_SEQUENCE, EXIF_TAG_IT8HEADER, 348 EXIF_TAG_RASTER_PADDING, EXIF_TAG_BITS_PER_RUN_LENGTH, EXIF_TAG_BITS_PER_EXTENDED_RUN_LENGTH, EXIF_TAG_COLOR_TABLE, EXIF_TAG_IMAGE_COLOR_INDICATOR, 349 EXIF_TAG_BACKGROUND_COLOR_INDICATOR, EXIF_TAG_IMAGE_COLOR_VALUE, EXIF_TAG_BACKGROUND_COLOR_VALUE, EXIF_TAG_PIXEL_INTENSITY_RANGE, 350 EXIF_TAG_TRANSPARENCY_INDICATOR, EXIF_TAG_COLOR_CHARACTERIZATION, EXIF_TAG_HCUSAGE, EXIF_TAG_SEMINFO, EXIF_TAG_AFCP_IPTC, EXIF_TAG_LEAF_DATA, 351 EXIF_TAG_PHOTOSHOP_SETTINGS, EXIF_TAG_EXIF_OFFSET, EXIF_TAG_EXPOSURE_PROGRAM, EXIF_TAG_SPECTRAL_SENSITIVITY, EXIF_TAG_GPSINFO, EXIF_TAG_ISO, 352 EXIF_TAG_OPTO_ELECTRIC_CONV_FACTOR, EXIF_TAG_LEAF_SUB_IFD, EXIF_TAG_EXIF_VERSION, EXIF_TAG_DATE_TIME_ORIGINAL, EXIF_TAG_DATE_TIME_DIGITIZED, 353 EXIF_TAG_COMPONENTS_CONFIGURATION, EXIF_TAG_COMPRESSED_BITS_PER_PIXEL, EXIF_TAG_SHUTTER_SPEED_VALUE, EXIF_TAG_APERTURE_VALUE, 354 EXIF_TAG_BRIGHTNESS_VALUE, EXIF_TAG_EXPOSURE_COMPENSATION, EXIF_TAG_MAX_APERTURE_VALUE, EXIF_TAG_SUBJECT_DISTANCE, EXIF_TAG_IMAGE_UNIQUE_ID, 355 EXIF_TAG_CAMERA_OWNER_NAME, EXIF_TAG_BODY_SERIAL_NUMBER, EXIF_TAG_LENS_SPECIFICATION, EXIF_TAG_LENS_MAKE, EXIF_TAG_LENS_MODEL, 356 EXIF_TAG_LENS_SERIAL_NUMBER, EXIF_TAG_METERING_MODE, EXIF_TAG_LIGHT_SOURCE, EXIF_TAG_FLASH, EXIF_TAG_FOCAL_LENGTH, EXIF_TAG_SUBJECT_AREA, 357 EXIF_TAG_STO_NITS, EXIF_TAG_SUB_SEC_TIME, EXIF_TAG_SUB_SEC_TIME_ORIGINAL, EXIF_TAG_SUB_SEC_TIME_DIGITIZED, EXIF_TAG_FLASHPIX_VERSION, 358 EXIF_TAG_EXIF_IMAGE_WIDTH, EXIF_TAG_EXIF_IMAGE_LENGTH, EXIF_TAG_RELATED_SOUND_FILE, EXIF_TAG_INTEROP_OFFSET, EXIF_TAG_FLASH_ENERGY_EXIF_IFD, 359 EXIF_TAG_SPATIAL_FREQUENCY_RESPONSE_2, EXIF_TAG_NOISE_2, EXIF_TAG_FOCAL_PLANE_XRESOLUTION_EXIF_IFD, EXIF_TAG_FOCAL_PLANE_YRESOLUTION_EXIF_IFD, 360 EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD, EXIF_TAG_IMAGE_NUMBER, EXIF_TAG_SECURITY_CLASSIFICATION, EXIF_TAG_IMAGE_HISTORY, 361 EXIF_TAG_SUBJECT_LOCATION, EXIF_TAG_EXPOSURE_INDEX_EXIF_IFD, EXIF_TAG_TIFF_EPSTANDARD_ID_2, EXIF_TAG_SENSING_METHOD_EXIF_IFD, EXIF_TAG_FILE_SOURCE, 362 EXIF_TAG_SCENE_TYPE, EXIF_TAG_CFAPATTERN, EXIF_TAG_CUSTOM_RENDERED, EXIF_TAG_EXPOSURE_MODE, EXIF_TAG_WHITE_BALANCE_1, EXIF_TAG_DIGITAL_ZOOM_RATIO, 363 EXIF_TAG_FOCAL_LENGTH_IN_35MM_FORMAT, EXIF_TAG_SCENE_CAPTURE_TYPE, EXIF_TAG_GAIN_CONTROL, EXIF_TAG_CONTRAST_1, EXIF_TAG_SATURATION_1, 364 EXIF_TAG_SHARPNESS_1, EXIF_TAG_DEVICE_SETTING_DESCRIPTION, EXIF_TAG_SUBJECT_DISTANCE_RANGE, EXIF_TAG_IMAGE_UNIQUE_ID, EXIF_TAG_GAMMA, 365 EXIF_TAG_ANNOTATIONS, EXIF_TAG_PRINT_IM, EXIF_TAG_OFFSET_SCHEMA, EXIF_TAG_OWNER_NAME, EXIF_TAG_SERIAL_NUMBER, EXIF_TAG_LENS, EXIF_TAG_RAW_FILE, 366 EXIF_TAG_CONVERTER, EXIF_TAG_WHITE_BALANCE_2, EXIF_TAG_EXPOSURE, EXIF_TAG_SHADOWS, EXIF_TAG_BRIGHTNESS, EXIF_TAG_CONTRAST_2, EXIF_TAG_SATURATION_2, 367 EXIF_TAG_SHARPNESS_2, EXIF_TAG_SMOOTHNESS, EXIF_TAG_MOIRE_FILTER, 368 369 EXIF_TAG_USER_COMMENT, // 370 371 EXIF_TAG_MAKER_NOTE)); 372 373 private ExifTagConstants() { 374 } 375}