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 * http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html 046 * http://tiki-lounge.com/~raf/tiff/fields.html 047 * http://www.awaresystems.be/imaging/tiff/tifftags.html 048 * 049 * "Stonits": http://www.anyhere.com/gward/pixformat/tiffluv.html 050 */ 051public final class ExifTagConstants { 052 053 public static final TagInfoAscii EXIF_TAG_INTEROPERABILITY_INDEX = new TagInfoAscii( 054 "InteroperabilityIndex", 0x0001, -1, 055 TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD); 056 public static final TagInfoUndefined EXIF_TAG_INTEROPERABILITY_VERSION = new TagInfoUndefined( 057 "InteroperabilityVersion", 0x0002, 058 TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD); 059 public static final TagInfoAscii EXIF_TAG_PROCESSING_SOFTWARE = new TagInfoAscii( 060 "ProcessingSoftware", 0x000b, -1, 061 TiffDirectoryType.EXIF_DIRECTORY_IFD0); 062 public static final TagInfoAscii EXIF_TAG_SOFTWARE = new TagInfoAscii( 063 "Software", 0x0131, -1, 064 TiffDirectoryType.EXIF_DIRECTORY_IFD0); 065 public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_START_IFD0 = new TagInfoLong( 066 "PreviewImageStart", 0x0111, 067 TiffDirectoryType.EXIF_DIRECTORY_IFD0, true); 068 public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_START_SUB_IFD1 = new TagInfoLong( 069 "PreviewImageStart", 0x0111, 070 TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD1, true); 071 public static final TagInfoLong EXIF_TAG_JPG_FROM_RAW_START_SUB_IFD2 = new TagInfoLong( 072 "JpgFromRawStart", 0x0111, 073 TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD2, true); 074 public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_LENGTH_IFD0 = new TagInfoLong( 075 "PreviewImageLength", 0x0117, 076 TiffDirectoryType.EXIF_DIRECTORY_IFD0); 077 public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_LENGTH_SUB_IFD1 = new TagInfoLong( 078 "PreviewImageLength", 0x0117, 079 TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD1); 080 public static final TagInfoLong EXIF_TAG_JPG_FROM_RAW_LENGTH_SUB_IFD2 = new TagInfoLong( 081 "JpgFromRawLength", 0x0117, 082 TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD2); 083 public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_START_MAKER_NOTES = new TagInfoLong( 084 "PreviewImageStart", 0x0201, 085 TiffDirectoryType.EXIF_DIRECTORY_MAKER_NOTES); 086 public static final TagInfoLong EXIF_TAG_JPG_FROM_RAW_START_SUB_IFD = new TagInfoLong( 087 "JpgFromRawStart", 0x0201, 088 TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD, true); 089 public static final TagInfoLong EXIF_TAG_JPG_FROM_RAW_START_IFD2 = new TagInfoLong( 090 "JpgFromRawStart", 0x0201, 091 TiffDirectoryType.EXIF_DIRECTORY_IFD2, true); 092 public static final TagInfoLong EXIF_TAG_OTHER_IMAGE_START = new TagInfoLong( 093 "OtherImageStart", 0x0201, 094 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN, true); 095 public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_LENGTH_MAKER_NOTES = new TagInfoLong( 096 "PreviewImageLength", 0x0202, 097 TiffDirectoryType.EXIF_DIRECTORY_MAKER_NOTES); 098 public static final TagInfoLong EXIF_TAG_JPG_FROM_RAW_LENGTH_SUB_IFD = new TagInfoLong( 099 "JpgFromRawLength", 0x0202, 100 TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD); 101 public static final TagInfoLong EXIF_TAG_JPG_FROM_RAW_LENGTH_IFD2 = new TagInfoLong( 102 "JpgFromRawLength", 0x0202, 103 TiffDirectoryType.EXIF_DIRECTORY_IFD2); 104 public static final TagInfoLong EXIF_TAG_OTHER_IMAGE_LENGTH = new TagInfoLong( 105 "OtherImageLength", 0x0202, 106 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 107 public static final TagInfoBytes EXIF_TAG_APPLICATION_NOTES = new TagInfoBytes( 108 "ApplicationNotes", 0x02bc, -1, 109 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 110 public static final TagInfoUnknowns EXIF_TAG_MATTEING = new TagInfoUnknowns( 111 "Matteing", 0x80e3, -1, 112 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 113 public static final TagInfoUnknowns EXIF_TAG_DATA_TYPE = new TagInfoUnknowns( 114 "DataType", 0x80e4, -1, 115 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 116 public static final TagInfoUnknowns EXIF_TAG_IMAGE_DEPTH = new TagInfoUnknowns( 117 "ImageDepth", 0x80e5, -1, 118 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 119 public static final TagInfoUnknowns EXIF_TAG_TILE_DEPTH = new TagInfoUnknowns( 120 "TileDepth", 0x80e6, -1, 121 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 122 public static final TagInfoUnknowns EXIF_TAG_MODEL_2 = new TagInfoUnknowns( 123 "Model2", 0x827d, -1, 124 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 125 public static final TagInfoRationals EXIF_TAG_EXPOSURE_TIME = new TagInfoRationals( 126 "ExposureTime", 0x829a, -1, 127 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 128 public static final TagInfoRationals EXIF_TAG_FNUMBER = new TagInfoRationals( 129 "FNumber", 0x829d, -1, 130 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 131 // FIXME: other types? 132 public static final TagInfoLong EXIF_TAG_IPTC_NAA = new TagInfoLong( 133 "IPTC-NAA", 0x83bb, 134 TiffDirectoryType.EXIF_DIRECTORY_IFD0); 135 public static final TagInfoShorts EXIF_TAG_INTERGRAPH_PACKET_DATA = new TagInfoShorts( 136 "IntergraphPacketData", 0x847e, -1, 137 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 138 public static final TagInfoLongs EXIF_TAG_INTERGRAPH_FLAG_REGISTERS = new TagInfoLongs( 139 "IntergraphFlagRegisters", 0x847f, 16, 140 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 141 public static final TagInfoAscii EXIF_TAG_SITE = new TagInfoAscii( 142 "Site", 0x84e0, -1, 143 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 144 public static final TagInfoAscii EXIF_TAG_COLOR_SEQUENCE = new TagInfoAscii( 145 "ColorSequence", 0x84e1, -1, 146 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 147 public static final TagInfoAscii EXIF_TAG_IT8HEADER = new TagInfoAscii( 148 "IT8Header", 0x84e2, -1, 149 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 150 public static final TagInfoShort EXIF_TAG_RASTER_PADDING = new TagInfoShort( 151 "RasterPadding", 0x84e3, 152 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 153 public static final TagInfoShort EXIF_TAG_BITS_PER_RUN_LENGTH = new TagInfoShort( 154 "BitsPerRunLength", 0x84e4, 155 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 156 public static final TagInfoShort EXIF_TAG_BITS_PER_EXTENDED_RUN_LENGTH = new TagInfoShort( 157 "BitsPerExtendedRunLength", 0x84e5, 158 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 159 public static final TagInfoBytes EXIF_TAG_COLOR_TABLE = new TagInfoBytes( 160 "ColorTable", 0x84e6, -1, 161 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 162 public static final TagInfoByte EXIF_TAG_IMAGE_COLOR_INDICATOR = new TagInfoByte( 163 "ImageColorIndicator", 0x84e7, 164 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 165 public static final TagInfoByte EXIF_TAG_BACKGROUND_COLOR_INDICATOR = new TagInfoByte( 166 "BackgroundColorIndicator", 0x84e8, 167 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 168 public static final TagInfoBytes EXIF_TAG_IMAGE_COLOR_VALUE = new TagInfoBytes( 169 "ImageColorValue", 0x84e9, -1, 170 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 171 public static final TagInfoBytes EXIF_TAG_BACKGROUND_COLOR_VALUE = new TagInfoBytes( 172 "BackgroundColorValue", 0x84ea, -1, 173 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 174 public static final TagInfoBytes EXIF_TAG_PIXEL_INTENSITY_RANGE = new TagInfoBytes( 175 "PixelIntensityRange", 0x84eb, -1, 176 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 177 public static final TagInfoByte EXIF_TAG_TRANSPARENCY_INDICATOR = new TagInfoByte( 178 "TransparencyIndicator", 0x84ec, 179 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 180 public static final TagInfoAscii EXIF_TAG_COLOR_CHARACTERIZATION = new TagInfoAscii( 181 "ColorCharacterization", 0x84ed, -1, 182 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 183 public static final TagInfoShortOrLong EXIF_TAG_HCUSAGE = new TagInfoShortOrLong( 184 "HCUsage", 0x84ee, 1, 185 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 186 public static final TagInfoAscii EXIF_TAG_SEMINFO = new TagInfoAscii( 187 "SEMInfo", 0x8546, 1, 188 TiffDirectoryType.EXIF_DIRECTORY_IFD0); 189 public static final TagInfoLong EXIF_TAG_AFCP_IPTC = new TagInfoLong( 190 "AFCP_IPTC", 0x8568, 191 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 192 public static final TagInfoLong EXIF_TAG_LEAF_DATA = new TagInfoLong( 193 "LeafData", 0x8606, 194 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 195 public static final TagInfoBytes EXIF_TAG_PHOTOSHOP_SETTINGS = new TagInfoBytes( 196 "PhotoshopSettings", 0x8649, -1, 197 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 198 public static final TagInfoDirectory EXIF_TAG_EXIF_OFFSET = new TagInfoDirectory( 199 "ExifOffset", 0x8769, 200 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 201 public static final TagInfoShort EXIF_TAG_EXPOSURE_PROGRAM = new TagInfoShort( 202 "ExposureProgram", 0x8822, 203 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 204 public static final int EXPOSURE_PROGRAM_VALUE_MANUAL = 1; 205 public static final int EXPOSURE_PROGRAM_VALUE_PROGRAM_AE = 2; 206 public static final int EXPOSURE_PROGRAM_VALUE_APERTURE_PRIORITY_AE = 3; 207 public static final int EXPOSURE_PROGRAM_VALUE_SHUTTER_SPEED_PRIORITY_AE = 4; 208 public static final int EXPOSURE_PROGRAM_VALUE_CREATIVE_SLOW_SPEED = 5; 209 public static final int EXPOSURE_PROGRAM_VALUE_ACTION_HIGH_SPEED = 6; 210 public static final int EXPOSURE_PROGRAM_VALUE_PORTRAIT = 7; 211 public static final int EXPOSURE_PROGRAM_VALUE_LANDSCAPE = 8; 212 public static final TagInfoAscii EXIF_TAG_SPECTRAL_SENSITIVITY = new TagInfoAscii( 213 "SpectralSensitivity", 0x8824, -1, 214 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 215 public static final TagInfoDirectory EXIF_TAG_GPSINFO = new TagInfoDirectory( 216 "GPSInfo", 0x8825, 217 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 218 public static final TagInfoShorts EXIF_TAG_ISO = new TagInfoShorts( 219 "PhotographicSensitivity", 0x8827, -1, 220 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 221 public static final TagInfoUndefineds EXIF_TAG_OPTO_ELECTRIC_CONV_FACTOR = new TagInfoUndefineds( 222 "Opto - Electric Conv Factor", 0x8828, -1, 223 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 224 public static final TagInfoLong EXIF_TAG_LEAF_SUB_IFD = new TagInfoLong( 225 "LeafSubIFD", 0x888a, 226 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 227 public static final TagInfoUndefineds EXIF_TAG_EXIF_VERSION = new TagInfoUndefineds( 228 "ExifVersion", 0x9000, 4, 229 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 230 public static final TagInfoAscii EXIF_TAG_DATE_TIME_ORIGINAL = new TagInfoAscii( 231 "DateTimeOriginal", 0x9003, 20, 232 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 233 public static final TagInfoAscii EXIF_TAG_DATE_TIME_DIGITIZED = new TagInfoAscii( 234 "DateTimeDigitized", 0x9004, 20, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 235 public static final TagInfoUndefineds EXIF_TAG_COMPONENTS_CONFIGURATION = new TagInfoUndefineds( 236 "ComponentsConfiguration", 0x9101, 4, 237 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 238 public static final TagInfoRational EXIF_TAG_COMPRESSED_BITS_PER_PIXEL = new TagInfoRational( 239 "CompressedBitsPerPixel", 0x9102, 240 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 241 public static final TagInfoSRational EXIF_TAG_SHUTTER_SPEED_VALUE = new TagInfoSRational( 242 "ShutterSpeedValue", 0x9201, 243 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 244 public static final TagInfoRational EXIF_TAG_APERTURE_VALUE = new TagInfoRational( 245 "ApertureValue", 0x9202, 246 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 247 public static final TagInfoSRational EXIF_TAG_BRIGHTNESS_VALUE = new TagInfoSRational( 248 "BrightnessValue", 0x9203, 249 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 250 public static final TagInfoSRational EXIF_TAG_EXPOSURE_COMPENSATION = new TagInfoSRational( 251 "ExposureCompensation", 0x9204, 252 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 253 public static final TagInfoRational EXIF_TAG_MAX_APERTURE_VALUE = new TagInfoRational( 254 "MaxApertureValue", 0x9205, 255 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 256 public static final TagInfoRationals EXIF_TAG_SUBJECT_DISTANCE = new TagInfoRationals( 257 "Subject Distance", 0x9206, -1, 258 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 259 public static final TagInfoShort EXIF_TAG_METERING_MODE = new TagInfoShort( 260 "MeteringMode", 0x9207, 261 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 262 public static final int METERING_MODE_VALUE_AVERAGE = 1; 263 public static final int METERING_MODE_VALUE_CENTER_WEIGHTED_AVERAGE = 2; 264 public static final int METERING_MODE_VALUE_SPOT = 3; 265 public static final int METERING_MODE_VALUE_MULTI_SPOT = 4; 266 public static final int METERING_MODE_VALUE_MULTI_SEGMENT = 5; 267 public static final int METERING_MODE_VALUE_PARTIAL = 6; 268 public static final int METERING_MODE_VALUE_OTHER = 255; 269 public static final TagInfoShort EXIF_TAG_LIGHT_SOURCE = new TagInfoShort( 270 "LightSource", 0x9208, 271 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 272 public static final int LIGHT_SOURCE_VALUE_DAYLIGHT = 1; 273 public static final int LIGHT_SOURCE_VALUE_FLUORESCENT = 2; 274 public static final int LIGHT_SOURCE_VALUE_TUNGSTEN = 3; 275 public static final int LIGHT_SOURCE_VALUE_FLASH = 4; 276 public static final int LIGHT_SOURCE_VALUE_FINE_WEATHER = 9; 277 public static final int LIGHT_SOURCE_VALUE_CLOUDY = 10; 278 public static final int LIGHT_SOURCE_VALUE_SHADE = 11; 279 public static final int LIGHT_SOURCE_VALUE_DAYLIGHT_FLUORESCENT = 12; 280 public static final int LIGHT_SOURCE_VALUE_DAY_WHITE_FLUORESCENT = 13; 281 public static final int LIGHT_SOURCE_VALUE_COOL_WHITE_FLUORESCENT = 14; 282 public static final int LIGHT_SOURCE_VALUE_WHITE_FLUORESCENT = 15; 283 public static final int LIGHT_SOURCE_VALUE_STANDARD_LIGHT_A = 17; 284 public static final int LIGHT_SOURCE_VALUE_STANDARD_LIGHT_B = 18; 285 public static final int LIGHT_SOURCE_VALUE_STANDARD_LIGHT_C = 19; 286 public static final int LIGHT_SOURCE_VALUE_D55 = 20; 287 public static final int LIGHT_SOURCE_VALUE_D65 = 21; 288 public static final int LIGHT_SOURCE_VALUE_D75 = 22; 289 public static final int LIGHT_SOURCE_VALUE_D50 = 23; 290 public static final int LIGHT_SOURCE_VALUE_ISO_STUDIO_TUNGSTEN = 24; 291 public static final int LIGHT_SOURCE_VALUE_OTHER = 255; 292 public static final TagInfoShort EXIF_TAG_FLASH = new TagInfoShort( 293 "Flash", 0x9209, 294 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 295 public static final int FLASH_VALUE_NO_FLASH = 0x0; 296 public static final int FLASH_VALUE_FIRED = 0x1; 297 public static final int FLASH_VALUE_FIRED_RETURN_NOT_DETECTED = 0x5; 298 public static final int FLASH_VALUE_FIRED_RETURN_DETECTED = 0x7; 299 public static final int FLASH_VALUE_ON_DID_NOT_FIRE = 0x8; 300 public static final int FLASH_VALUE_ON = 0x9; 301 public static final int FLASH_VALUE_ON_RETURN_NOT_DETECTED = 0xd; 302 public static final int FLASH_VALUE_ON_RETURN_DETECTED = 0xf; 303 public static final int FLASH_VALUE_OFF = 0x10; 304 public static final int FLASH_VALUE_OFF_DID_NOT_FIRE_RETURN_NOT_DETECTED = 0x14; 305 public static final int FLASH_VALUE_AUTO_DID_NOT_FIRE = 0x18; 306 public static final int FLASH_VALUE_AUTO_FIRED = 0x19; 307 public static final int FLASH_VALUE_AUTO_FIRED_RETURN_NOT_DETECTED = 0x1d; 308 public static final int FLASH_VALUE_AUTO_FIRED_RETURN_DETECTED = 0x1f; 309 public static final int FLASH_VALUE_NO_FLASH_FUNCTION = 0x20; 310 public static final int FLASH_VALUE_OFF_NO_FLASH_FUNCTION = 0x30; 311 public static final int FLASH_VALUE_FIRED_RED_EYE_REDUCTION = 0x41; 312 public static final int FLASH_VALUE_FIRED_RED_EYE_REDUCTION_RETURN_NOT_DETECTED = 0x45; 313 public static final int FLASH_VALUE_FIRED_RED_EYE_REDUCTION_RETURN_DETECTED = 0x47; 314 public static final int FLASH_VALUE_ON_RED_EYE_REDUCTION = 0x49; 315 public static final int FLASH_VALUE_ON_RED_EYE_REDUCTION_RETURN_NOT_DETECTED = 0x4d; 316 public static final int FLASH_VALUE_ON_RED_EYE_REDUCTION_RETURN_DETECTED = 0x4f; 317 public static final int FLASH_VALUE_OFF_RED_EYE_REDUCTION = 0x50; 318 public static final int FLASH_VALUE_AUTO_DID_NOT_FIRE_RED_EYE_REDUCTION = 0x58; 319 public static final int FLASH_VALUE_AUTO_FIRED_RED_EYE_REDUCTION = 0x59; 320 public static final int FLASH_VALUE_AUTO_FIRED_RED_EYE_REDUCTION_RETURN_NOT_DETECTED = 0x5d; 321 public static final int FLASH_VALUE_AUTO_FIRED_RED_EYE_REDUCTION_RETURN_DETECTED = 0x5f; 322 public static final TagInfoRationals EXIF_TAG_FOCAL_LENGTH = new TagInfoRationals( 323 "FocalLength", 0x920a, -1, 324 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 325 public static final TagInfoShorts EXIF_TAG_SUBJECT_AREA = new TagInfoShorts( 326 "SubjectArea", 0x9214, -1, 327 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 328 public static final TagInfoDouble EXIF_TAG_STO_NITS = new TagInfoDouble( 329 "StoNits", 0x923f, 330 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 331 public static final TagInfoUndefineds EXIF_TAG_MAKER_NOTE = new TagInfoUndefineds( 332 "MakerNote", 0x927c, -1, 333 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 334 public static final TagInfoGpsText EXIF_TAG_USER_COMMENT = new TagInfoGpsText( 335 "UserComment", 0x9286, 336 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 337 public static final TagInfoAscii EXIF_TAG_SUB_SEC_TIME = new TagInfoAscii( 338 "SubSecTime", 0x9290, -1, 339 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 340 public static final TagInfoAscii EXIF_TAG_SUB_SEC_TIME_ORIGINAL = new TagInfoAscii( 341 "SubSecTimeOriginal", 0x9291, -1, 342 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 343 public static final TagInfoAscii EXIF_TAG_SUB_SEC_TIME_DIGITIZED = new TagInfoAscii( 344 "SubSecTimeDigitized", 0x9292, -1, 345 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 346 public static final TagInfoUndefineds EXIF_TAG_FLASHPIX_VERSION = new TagInfoUndefineds( 347 "FlashpixVersion", 0xa000, 4, 348 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 349 public static final TagInfoShort EXIF_TAG_EXIF_IMAGE_WIDTH = new TagInfoShort( 350 "ExifImageWidth", 0xa002, 351 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 352 public static final TagInfoShort EXIF_TAG_EXIF_IMAGE_LENGTH = new TagInfoShort( 353 "ExifImageLength", 0xa003, 354 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 355 public static final TagInfoAscii EXIF_TAG_RELATED_SOUND_FILE = new TagInfoAscii( 356 "RelatedSoundFile", 0xa004, 13, 357 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 358 public static final TagInfoDirectory EXIF_TAG_INTEROP_OFFSET = new TagInfoDirectory( 359 "InteropOffset", 0xa005, 360 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 361 public static final TagInfoRationals EXIF_TAG_FLASH_ENERGY_EXIF_IFD = new TagInfoRationals( 362 "FlashEnergy", 0xa20b, -1, 363 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 364 public static final TagInfoUndefineds EXIF_TAG_SPATIAL_FREQUENCY_RESPONSE_2 = new TagInfoUndefineds( 365 "SpatialFrequencyResponse", 0xa20c, -1, 366 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 367 public static final TagInfoUnknowns EXIF_TAG_NOISE_2 = new TagInfoUnknowns( 368 "Noise", 0xa20d, -1, 369 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 370 public static final TagInfoRational EXIF_TAG_FOCAL_PLANE_XRESOLUTION_EXIF_IFD = new TagInfoRational( 371 "FocalPlaneXResolution", 0xa20e, 372 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 373 public static final TagInfoRational EXIF_TAG_FOCAL_PLANE_YRESOLUTION_EXIF_IFD = new TagInfoRational( 374 "FocalPlaneYResolution", 0xa20f, 375 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 376 public static final TagInfoShort EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD = new TagInfoShort( 377 "FocalPlaneResolutionUnit", 0xa210, 378 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 379 public static final int FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD_VALUE_NONE = 1; 380 public static final int FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD_VALUE_INCHES = 2; 381 public static final int FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD_VALUE_CM = 3; 382 public static final int FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD_VALUE_MM = 4; 383 public static final int FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD_VALUE_UM = 5; 384 public static final TagInfoUnknowns EXIF_TAG_IMAGE_NUMBER = new TagInfoUnknowns( 385 "ImageNumber", 0xa211, -1, 386 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 387 public static final TagInfoUnknowns EXIF_TAG_SECURITY_CLASSIFICATION = new TagInfoUnknowns( 388 "SecurityClassification", 0xa212, -1, 389 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 390 public static final TagInfoUnknowns EXIF_TAG_IMAGE_HISTORY = new TagInfoUnknowns( 391 "ImageHistory", 0xa213, -1, 392 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 393 public static final TagInfoShorts EXIF_TAG_SUBJECT_LOCATION = new TagInfoShorts( 394 "SubjectLocation", 0xa214, 2, 395 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 396 public static final TagInfoRational EXIF_TAG_EXPOSURE_INDEX_EXIF_IFD = new TagInfoRational( 397 "ExposureIndex", 0xa215, 398 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 399 public static final TagInfoUnknowns EXIF_TAG_TIFF_EPSTANDARD_ID_2 = new TagInfoUnknowns( 400 "TIFF-EPStandardID", 0xa216, -1, 401 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 402 public static final TagInfoShort EXIF_TAG_SENSING_METHOD_EXIF_IFD = new TagInfoShort( 403 "SensingMethod", 0xa217, 404 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 405 public static final int SENSING_METHOD_EXIF_IFD_VALUE_NOT_DEFINED = 1; 406 public static final int SENSING_METHOD_EXIF_IFD_VALUE_ONE_CHIP_COLOR_AREA = 2; 407 public static final int SENSING_METHOD_EXIF_IFD_VALUE_TWO_CHIP_COLOR_AREA = 3; 408 public static final int SENSING_METHOD_EXIF_IFD_VALUE_THREE_CHIP_COLOR_AREA = 4; 409 public static final int SENSING_METHOD_EXIF_IFD_VALUE_COLOR_SEQUENTIAL_AREA = 5; 410 public static final int SENSING_METHOD_EXIF_IFD_VALUE_TRILINEAR = 7; 411 public static final int SENSING_METHOD_EXIF_IFD_VALUE_COLOR_SEQUENTIAL_LINEAR = 8; 412 public static final TagInfoUndefined EXIF_TAG_FILE_SOURCE = new TagInfoUndefined( 413 "FileSource", 0xa300, 414 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 415 public static final int FILE_SOURCE_VALUE_FILM_SCANNER = 1; 416 public static final int FILE_SOURCE_VALUE_REFLECTION_PRINT_SCANNER = 2; 417 public static final int FILE_SOURCE_VALUE_DIGITAL_CAMERA = 3; 418 public static final TagInfoUndefined EXIF_TAG_SCENE_TYPE = new TagInfoUndefined( 419 "SceneType", 0xa301, 420 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 421 public static final TagInfoUndefineds EXIF_TAG_CFAPATTERN = new TagInfoUndefineds( 422 "CFAPattern", 0xa302, -1, 423 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 424 public static final TagInfoShort EXIF_TAG_CUSTOM_RENDERED = new TagInfoShort( 425 "CustomRendered", 0xa401, 426 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 427 public static final int CUSTOM_RENDERED_VALUE_NORMAL = 0; 428 public static final int CUSTOM_RENDERED_VALUE_CUSTOM = 1; 429 public static final TagInfoShort EXIF_TAG_EXPOSURE_MODE = new TagInfoShort( 430 "ExposureMode", 0xa402, 431 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 432 public static final int EXPOSURE_MODE_VALUE_AUTO = 0; 433 public static final int EXPOSURE_MODE_VALUE_MANUAL = 1; 434 public static final int EXPOSURE_MODE_VALUE_AUTO_BRACKET = 2; 435 public static final TagInfoShort EXIF_TAG_WHITE_BALANCE_1 = new TagInfoShort( 436 "WhiteBalance", 0xa403, 437 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 438 public static final int WHITE_BALANCE_1_VALUE_AUTO = 0; 439 public static final int WHITE_BALANCE_1_VALUE_MANUAL = 1; 440 public static final TagInfoRational EXIF_TAG_DIGITAL_ZOOM_RATIO = new TagInfoRational( 441 "DigitalZoomRatio", 0xa404, 442 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 443 public static final TagInfoShort EXIF_TAG_FOCAL_LENGTH_IN_35MM_FORMAT = new TagInfoShort( 444 "FocalLengthIn35mmFormat", 0xa405, 445 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 446 public static final TagInfoShort EXIF_TAG_SCENE_CAPTURE_TYPE = new TagInfoShort( 447 "SceneCaptureType", 0xa406, 448 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 449 public static final int SCENE_CAPTURE_TYPE_VALUE_STANDARD = 0; 450 public static final int SCENE_CAPTURE_TYPE_VALUE_LANDSCAPE = 1; 451 public static final int SCENE_CAPTURE_TYPE_VALUE_PORTRAIT = 2; 452 public static final int SCENE_CAPTURE_TYPE_VALUE_NIGHT = 3; 453 public static final TagInfoShort EXIF_TAG_GAIN_CONTROL = new TagInfoShort( 454 "GainControl", 0xa407, 455 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 456 public static final int GAIN_CONTROL_VALUE_NONE = 0; 457 public static final int GAIN_CONTROL_VALUE_LOW_GAIN_UP = 1; 458 public static final int GAIN_CONTROL_VALUE_HIGH_GAIN_UP = 2; 459 public static final int GAIN_CONTROL_VALUE_LOW_GAIN_DOWN = 3; 460 public static final int GAIN_CONTROL_VALUE_HIGH_GAIN_DOWN = 4; 461 public static final TagInfoShort EXIF_TAG_CONTRAST_1 = new TagInfoShort( 462 "Contrast", 0xa408, 463 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 464 public static final int CONTRAST_1_VALUE_NORMAL = 0; 465 public static final int CONTRAST_1_VALUE_LOW = 1; 466 public static final int CONTRAST_1_VALUE_HIGH = 2; 467 public static final TagInfoShort EXIF_TAG_SATURATION_1 = new TagInfoShort( 468 "Saturation", 0xa409, 469 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 470 public static final int SATURATION_1_VALUE_NORMAL = 0; 471 public static final int SATURATION_1_VALUE_LOW = 1; 472 public static final int SATURATION_1_VALUE_HIGH = 2; 473 public static final TagInfoShort EXIF_TAG_SHARPNESS_1 = new TagInfoShort( 474 "Sharpness", 0xa40a, 475 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 476 public static final int SHARPNESS_1_VALUE_NORMAL = 0; 477 public static final int SHARPNESS_1_VALUE_SOFT = 1; 478 public static final int SHARPNESS_1_VALUE_HARD = 2; 479 public static final TagInfoUndefineds EXIF_TAG_DEVICE_SETTING_DESCRIPTION = new TagInfoUndefineds( 480 "DeviceSettingDescription", 0xa40b, -1, 481 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 482 public static final TagInfoShort EXIF_TAG_SUBJECT_DISTANCE_RANGE = new TagInfoShort( 483 "SubjectDistanceRange", 0xa40c, 484 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 485 public static final int SUBJECT_DISTANCE_RANGE_VALUE_MACRO = 1; 486 public static final int SUBJECT_DISTANCE_RANGE_VALUE_CLOSE = 2; 487 public static final int SUBJECT_DISTANCE_RANGE_VALUE_DISTANT = 3; 488 public static final TagInfoAscii EXIF_TAG_IMAGE_UNIQUE_ID = new TagInfoAscii( 489 "ImageUniqueID", 0xa420, 33, 490 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 491 public static final TagInfoAscii EXIF_TAG_CAMERA_OWNER_NAME = new TagInfoAscii( 492 "CameraOwnerName", 0xa430, -1, 493 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 494 public static final TagInfoAscii EXIF_TAG_BODY_SERIAL_NUMBER = new TagInfoAscii( 495 "BodySerialNumber", 0xa431, -1, 496 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 497 public static final TagInfoRationals EXIF_TAG_LENS_SPECIFICATION = new TagInfoRationals( 498 "LensSpecification", 0xa432, 4, 499 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 500 public static final TagInfoAscii EXIF_TAG_LENS_MAKE = new TagInfoAscii( 501 "LensMake", 0xa433, -1, 502 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 503 public static final TagInfoAscii EXIF_TAG_LENS_MODEL = new TagInfoAscii( 504 "LensModel", 0xa434, -1, 505 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 506 public static final TagInfoAscii EXIF_TAG_LENS_SERIAL_NUMBER = new TagInfoAscii( 507 "LensSerialNumber", 0xa435, -1, 508 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 509 public static final TagInfoRational EXIF_TAG_GAMMA = new TagInfoRational( 510 "Gamma", 0xa500, 511 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 512 public static final TagInfoUnknowns EXIF_TAG_ANNOTATIONS = new TagInfoUnknowns( 513 "Annotations", 0xc44f, -1, 514 TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); 515 public static final TagInfoUndefined EXIF_TAG_PRINT_IM = new TagInfoUndefined( 516 "PrintIM", 0xc4a5, 517 TiffDirectoryType.EXIF_DIRECTORY_IFD0); 518 public static final TagInfoSLong EXIF_TAG_OFFSET_SCHEMA = new TagInfoSLong( 519 "OffsetSchema", 0xea1d, 520 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 521 public static final TagInfoAscii EXIF_TAG_OWNER_NAME = new TagInfoAscii( 522 "OwnerName", 0xfde8, -1, 523 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 524 public static final TagInfoAscii EXIF_TAG_SERIAL_NUMBER = new TagInfoAscii( 525 "SerialNumber", 0xfde9, -1, 526 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 527 public static final TagInfoAscii EXIF_TAG_LENS = new TagInfoAscii( 528 "Lens", 0xfdea, -1, 529 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 530 public static final TagInfoAscii EXIF_TAG_RAW_FILE = new TagInfoAscii( 531 "RawFile", 0xfe4c, -1, 532 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 533 public static final TagInfoAscii EXIF_TAG_CONVERTER = new TagInfoAscii( 534 "Converter", 0xfe4d, -1, 535 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 536 public static final TagInfoAscii EXIF_TAG_WHITE_BALANCE_2 = new TagInfoAscii( 537 "WhiteBalance", 0xfe4e, -1, 538 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 539 public static final TagInfoAscii EXIF_TAG_EXPOSURE = new TagInfoAscii( 540 "Exposure", 0xfe51, -1, 541 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 542 public static final TagInfoAscii EXIF_TAG_SHADOWS = new TagInfoAscii( 543 "Shadows", 0xfe52, -1, 544 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 545 public static final TagInfoAscii EXIF_TAG_BRIGHTNESS = new TagInfoAscii( 546 "Brightness", 0xfe53, -1, 547 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 548 public static final TagInfoAscii EXIF_TAG_CONTRAST_2 = new TagInfoAscii( 549 "Contrast", 0xfe54, -1, 550 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 551 public static final TagInfoAscii EXIF_TAG_SATURATION_2 = new TagInfoAscii( 552 "Saturation", 0xfe55, -1, 553 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 554 public static final TagInfoAscii EXIF_TAG_SHARPNESS_2 = new TagInfoAscii( 555 "Sharpness", 0xfe56, -1, 556 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 557 public static final TagInfoAscii EXIF_TAG_SMOOTHNESS = new TagInfoAscii( 558 "Smoothness", 0xfe57, -1, 559 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 560 public static final TagInfoAscii EXIF_TAG_MOIRE_FILTER = new TagInfoAscii( 561 "MoireFilter", 0xfe58, -1, 562 TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); 563 564 public static final List<TagInfo> ALL_EXIF_TAGS = 565 Collections.unmodifiableList(Arrays.asList( 566 EXIF_TAG_INTEROPERABILITY_INDEX, EXIF_TAG_INTEROPERABILITY_VERSION, 567 EXIF_TAG_PROCESSING_SOFTWARE, 568 EXIF_TAG_SOFTWARE, 569 EXIF_TAG_PREVIEW_IMAGE_START_IFD0, 570 EXIF_TAG_PREVIEW_IMAGE_START_SUB_IFD1, 571 EXIF_TAG_JPG_FROM_RAW_START_SUB_IFD2, 572 EXIF_TAG_PREVIEW_IMAGE_LENGTH_IFD0, 573 EXIF_TAG_PREVIEW_IMAGE_LENGTH_SUB_IFD1, 574 EXIF_TAG_JPG_FROM_RAW_LENGTH_SUB_IFD2, 575 EXIF_TAG_PREVIEW_IMAGE_START_MAKER_NOTES, 576 EXIF_TAG_JPG_FROM_RAW_START_SUB_IFD, 577 EXIF_TAG_JPG_FROM_RAW_START_IFD2, EXIF_TAG_OTHER_IMAGE_START, 578 EXIF_TAG_PREVIEW_IMAGE_LENGTH_MAKER_NOTES, 579 EXIF_TAG_JPG_FROM_RAW_LENGTH_SUB_IFD, 580 EXIF_TAG_JPG_FROM_RAW_LENGTH_IFD2, EXIF_TAG_OTHER_IMAGE_LENGTH, 581 EXIF_TAG_APPLICATION_NOTES, 582 EXIF_TAG_MATTEING, EXIF_TAG_DATA_TYPE, 583 EXIF_TAG_IMAGE_DEPTH, EXIF_TAG_TILE_DEPTH, EXIF_TAG_MODEL_2, 584 EXIF_TAG_EXPOSURE_TIME, 585 EXIF_TAG_FNUMBER, EXIF_TAG_IPTC_NAA, 586 EXIF_TAG_INTERGRAPH_PACKET_DATA, 587 EXIF_TAG_INTERGRAPH_FLAG_REGISTERS, 588 EXIF_TAG_SITE, EXIF_TAG_COLOR_SEQUENCE, 589 EXIF_TAG_IT8HEADER, EXIF_TAG_RASTER_PADDING, 590 EXIF_TAG_BITS_PER_RUN_LENGTH, 591 EXIF_TAG_BITS_PER_EXTENDED_RUN_LENGTH, EXIF_TAG_COLOR_TABLE, 592 EXIF_TAG_IMAGE_COLOR_INDICATOR, 593 EXIF_TAG_BACKGROUND_COLOR_INDICATOR, EXIF_TAG_IMAGE_COLOR_VALUE, 594 EXIF_TAG_BACKGROUND_COLOR_VALUE, EXIF_TAG_PIXEL_INTENSITY_RANGE, 595 EXIF_TAG_TRANSPARENCY_INDICATOR, EXIF_TAG_COLOR_CHARACTERIZATION, 596 EXIF_TAG_HCUSAGE, EXIF_TAG_SEMINFO, EXIF_TAG_AFCP_IPTC, 597 EXIF_TAG_LEAF_DATA, 598 EXIF_TAG_PHOTOSHOP_SETTINGS, EXIF_TAG_EXIF_OFFSET, 599 EXIF_TAG_EXPOSURE_PROGRAM, 600 EXIF_TAG_SPECTRAL_SENSITIVITY, EXIF_TAG_GPSINFO, EXIF_TAG_ISO, 601 EXIF_TAG_OPTO_ELECTRIC_CONV_FACTOR, 602 EXIF_TAG_LEAF_SUB_IFD, 603 EXIF_TAG_EXIF_VERSION, EXIF_TAG_DATE_TIME_ORIGINAL, 604 EXIF_TAG_DATE_TIME_DIGITIZED, EXIF_TAG_COMPONENTS_CONFIGURATION, 605 EXIF_TAG_COMPRESSED_BITS_PER_PIXEL, EXIF_TAG_SHUTTER_SPEED_VALUE, 606 EXIF_TAG_APERTURE_VALUE, EXIF_TAG_BRIGHTNESS_VALUE, 607 EXIF_TAG_EXPOSURE_COMPENSATION, EXIF_TAG_MAX_APERTURE_VALUE, 608 EXIF_TAG_SUBJECT_DISTANCE, EXIF_TAG_IMAGE_UNIQUE_ID, 609 EXIF_TAG_CAMERA_OWNER_NAME, 610 EXIF_TAG_BODY_SERIAL_NUMBER, 611 EXIF_TAG_LENS_SPECIFICATION, 612 EXIF_TAG_LENS_MAKE, 613 EXIF_TAG_LENS_MODEL, 614 EXIF_TAG_LENS_SERIAL_NUMBER, 615 EXIF_TAG_METERING_MODE, 616 EXIF_TAG_LIGHT_SOURCE, EXIF_TAG_FLASH, EXIF_TAG_FOCAL_LENGTH, 617 EXIF_TAG_SUBJECT_AREA, 618 EXIF_TAG_STO_NITS, EXIF_TAG_SUB_SEC_TIME, 619 EXIF_TAG_SUB_SEC_TIME_ORIGINAL, EXIF_TAG_SUB_SEC_TIME_DIGITIZED, 620 EXIF_TAG_FLASHPIX_VERSION, 621 EXIF_TAG_EXIF_IMAGE_WIDTH, EXIF_TAG_EXIF_IMAGE_LENGTH, 622 EXIF_TAG_RELATED_SOUND_FILE, EXIF_TAG_INTEROP_OFFSET, 623 EXIF_TAG_FLASH_ENERGY_EXIF_IFD, 624 EXIF_TAG_SPATIAL_FREQUENCY_RESPONSE_2, EXIF_TAG_NOISE_2, 625 EXIF_TAG_FOCAL_PLANE_XRESOLUTION_EXIF_IFD, 626 EXIF_TAG_FOCAL_PLANE_YRESOLUTION_EXIF_IFD, 627 EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT_EXIF_IFD, 628 EXIF_TAG_IMAGE_NUMBER, EXIF_TAG_SECURITY_CLASSIFICATION, 629 EXIF_TAG_IMAGE_HISTORY, EXIF_TAG_SUBJECT_LOCATION, 630 EXIF_TAG_EXPOSURE_INDEX_EXIF_IFD, EXIF_TAG_TIFF_EPSTANDARD_ID_2, 631 EXIF_TAG_SENSING_METHOD_EXIF_IFD, EXIF_TAG_FILE_SOURCE, 632 EXIF_TAG_SCENE_TYPE, EXIF_TAG_CFAPATTERN, EXIF_TAG_CUSTOM_RENDERED, 633 EXIF_TAG_EXPOSURE_MODE, EXIF_TAG_WHITE_BALANCE_1, 634 EXIF_TAG_DIGITAL_ZOOM_RATIO, EXIF_TAG_FOCAL_LENGTH_IN_35MM_FORMAT, 635 EXIF_TAG_SCENE_CAPTURE_TYPE, EXIF_TAG_GAIN_CONTROL, 636 EXIF_TAG_CONTRAST_1, EXIF_TAG_SATURATION_1, EXIF_TAG_SHARPNESS_1, 637 EXIF_TAG_DEVICE_SETTING_DESCRIPTION, 638 EXIF_TAG_SUBJECT_DISTANCE_RANGE, EXIF_TAG_IMAGE_UNIQUE_ID, 639 EXIF_TAG_GAMMA, 640 EXIF_TAG_ANNOTATIONS, EXIF_TAG_PRINT_IM, 641 EXIF_TAG_OFFSET_SCHEMA, EXIF_TAG_OWNER_NAME, 642 EXIF_TAG_SERIAL_NUMBER, EXIF_TAG_LENS, EXIF_TAG_RAW_FILE, 643 EXIF_TAG_CONVERTER, EXIF_TAG_WHITE_BALANCE_2, EXIF_TAG_EXPOSURE, 644 EXIF_TAG_SHADOWS, EXIF_TAG_BRIGHTNESS, EXIF_TAG_CONTRAST_2, 645 EXIF_TAG_SATURATION_2, EXIF_TAG_SHARPNESS_2, EXIF_TAG_SMOOTHNESS, 646 EXIF_TAG_MOIRE_FILTER, 647 648 EXIF_TAG_USER_COMMENT, // 649 650 EXIF_TAG_MAKER_NOTE)); 651 652 private ExifTagConstants() { 653 } 654}