Changeset 8243 in josm for trunk/src/com/drew/metadata/exif/ExifSubIFDDirectory.java
- Timestamp:
- 2015-04-21T00:42:50+02:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/com/drew/metadata/exif/ExifSubIFDDirectory.java
r8132 r8243 22 22 23 23 import com.drew.lang.annotations.NotNull; 24 import com.drew.metadata.Directory;25 24 26 25 import java.util.HashMap; … … 31 30 * @author Drew Noakes https://drewnoakes.com 32 31 */ 33 public class ExifSubIFDDirectory extends Directory 32 public class ExifSubIFDDirectory extends ExifDirectoryBase 34 33 { 35 /**36 * The actual aperture value of lens when the image was taken. Unit is APEX.37 * To convert this value to ordinary F-number (F-stop), calculate this value's38 * power of root 2 (=1.4142). For example, if the ApertureValue is '5',39 * F-number is 1.4142^5 = F5.6.40 */41 public static final int TAG_APERTURE = 0x9202;42 /**43 * When image format is no compression, this value shows the number of bits44 * per component for each pixel. Usually this value is '8,8,8'.45 */46 public static final int TAG_BITS_PER_SAMPLE = 0x0102;47 48 /**49 * Shows the color space of the image data components.50 * 0 = WhiteIsZero51 * 1 = BlackIsZero52 * 2 = RGB53 * 3 = RGB Palette54 * 4 = Transparency Mask55 * 5 = CMYK56 * 6 = YCbCr57 * 8 = CIELab58 * 9 = ICCLab59 * 10 = ITULab60 * 32803 = Color Filter Array61 * 32844 = Pixar LogL62 * 32845 = Pixar LogLuv63 * 34892 = Linear Raw64 */65 public static final int TAG_PHOTOMETRIC_INTERPRETATION = 0x0106;66 67 /**68 * 1 = No dithering or halftoning69 * 2 = Ordered dither or halftone70 * 3 = Randomized dither71 */72 public static final int TAG_THRESHOLDING = 0x0107;73 74 /**75 * 1 = Normal76 * 2 = Reversed77 */78 public static final int TAG_FILL_ORDER = 0x010A;79 public static final int TAG_DOCUMENT_NAME = 0x010D;80 81 /** The position in the file of raster data. */82 public static final int TAG_STRIP_OFFSETS = 0x0111;83 /** Each pixel is composed of this many samples. */84 public static final int TAG_SAMPLES_PER_PIXEL = 0x0115;85 /** The raster is codified by a single block of data holding this many rows. */86 public static final int TAG_ROWS_PER_STRIP = 0x116;87 /** The size of the raster data in bytes. */88 public static final int TAG_STRIP_BYTE_COUNTS = 0x0117;89 public static final int TAG_MIN_SAMPLE_VALUE = 0x0118;90 public static final int TAG_MAX_SAMPLE_VALUE = 0x0119;91 /**92 * When image format is no compression YCbCr, this value shows byte aligns of93 * YCbCr data. If value is '1', Y/Cb/Cr value is chunky format, contiguous for94 * each subsampling pixel. If value is '2', Y/Cb/Cr value is separated and95 * stored to Y plane/Cb plane/Cr plane format.96 */97 public static final int TAG_PLANAR_CONFIGURATION = 0x011C;98 public static final int TAG_YCBCR_SUBSAMPLING = 0x0212;99 100 /**101 * The new subfile type tag.102 * 0 = Full-resolution Image103 * 1 = Reduced-resolution image104 * 2 = Single page of multi-page image105 * 3 = Single page of multi-page reduced-resolution image106 * 4 = Transparency mask107 * 5 = Transparency mask of reduced-resolution image108 * 6 = Transparency mask of multi-page image109 * 7 = Transparency mask of reduced-resolution multi-page image110 */111 public static final int TAG_NEW_SUBFILE_TYPE = 0x00FE;112 /**113 * The old subfile type tag.114 * 1 = Full-resolution image (Main image)115 * 2 = Reduced-resolution image (Thumbnail)116 * 3 = Single page of multi-page image117 */118 public static final int TAG_SUBFILE_TYPE = 0x00FF;119 public static final int TAG_TRANSFER_FUNCTION = 0x012D;120 public static final int TAG_PREDICTOR = 0x013D;121 public static final int TAG_TILE_WIDTH = 0x0142;122 public static final int TAG_TILE_LENGTH = 0x0143;123 public static final int TAG_TILE_OFFSETS = 0x0144;124 public static final int TAG_TILE_BYTE_COUNTS = 0x0145;125 public static final int TAG_JPEG_TABLES = 0x015B;126 public static final int TAG_CFA_REPEAT_PATTERN_DIM = 0x828D;127 /** There are two definitions for CFA pattern, I don't know the difference... */128 public static final int TAG_CFA_PATTERN_2 = 0x828E;129 public static final int TAG_BATTERY_LEVEL = 0x828F;130 public static final int TAG_IPTC_NAA = 0x83BB;131 public static final int TAG_INTER_COLOR_PROFILE = 0x8773;132 public static final int TAG_SPECTRAL_SENSITIVITY = 0x8824;133 /**134 * Indicates the Opto-Electric Conversion Function (OECF) specified in ISO 14524.135 * <p>136 * OECF is the relationship between the camera optical input and the image values.137 * <p>138 * The values are:139 * <ul>140 * <li>Two shorts, indicating respectively number of columns, and number of rows.</li>141 * <li>For each column, the column name in a null-terminated ASCII string.</li>142 * <li>For each cell, an SRATIONAL value.</li>143 * </ul>144 */145 public static final int TAG_OPTO_ELECTRIC_CONVERSION_FUNCTION = 0x8828;146 public static final int TAG_INTERLACE = 0x8829;147 public static final int TAG_TIME_ZONE_OFFSET = 0x882A;148 public static final int TAG_SELF_TIMER_MODE = 0x882B;149 public static final int TAG_FLASH_ENERGY = 0x920B;150 public static final int TAG_SPATIAL_FREQ_RESPONSE = 0x920C;151 public static final int TAG_NOISE = 0x920D;152 public static final int TAG_IMAGE_NUMBER = 0x9211;153 public static final int TAG_SECURITY_CLASSIFICATION = 0x9212;154 public static final int TAG_IMAGE_HISTORY = 0x9213;155 public static final int TAG_SUBJECT_LOCATION = 0x9214;156 /** There are two definitions for exposure index, I don't know the difference... */157 public static final int TAG_EXPOSURE_INDEX_2 = 0x9215;158 public static final int TAG_TIFF_EP_STANDARD_ID = 0x9216;159 public static final int TAG_FLASH_ENERGY_2 = 0xA20B;160 public static final int TAG_SPATIAL_FREQ_RESPONSE_2 = 0xA20C;161 public static final int TAG_SUBJECT_LOCATION_2 = 0xA214;162 public static final int TAG_PAGE_NAME = 0x011D;163 /**164 * Exposure time (reciprocal of shutter speed). Unit is second.165 */166 public static final int TAG_EXPOSURE_TIME = 0x829A;167 /**168 * The actual F-number(F-stop) of lens when the image was taken.169 */170 public static final int TAG_FNUMBER = 0x829D;171 /**172 * Exposure program that the camera used when image was taken. '1' means173 * manual control, '2' program normal, '3' aperture priority, '4' shutter174 * priority, '5' program creative (slow program), '6' program action175 * (high-speed program), '7' portrait mode, '8' landscape mode.176 */177 public static final int TAG_EXPOSURE_PROGRAM = 0x8822;178 public static final int TAG_ISO_EQUIVALENT = 0x8827;179 public static final int TAG_EXIF_VERSION = 0x9000;180 public static final int TAG_DATETIME_ORIGINAL = 0x9003;181 public static final int TAG_DATETIME_DIGITIZED = 0x9004;182 public static final int TAG_COMPONENTS_CONFIGURATION = 0x9101;183 /**184 * Average (rough estimate) compression level in JPEG bits per pixel.185 * */186 public static final int TAG_COMPRESSED_AVERAGE_BITS_PER_PIXEL = 0x9102;187 /**188 * Shutter speed by APEX value. To convert this value to ordinary 'Shutter Speed';189 * calculate this value's power of 2, then reciprocal. For example, if the190 * ShutterSpeedValue is '4', shutter speed is 1/(24)=1/16 second.191 */192 public static final int TAG_SHUTTER_SPEED = 0x9201;193 public static final int TAG_BRIGHTNESS_VALUE = 0x9203;194 public static final int TAG_EXPOSURE_BIAS = 0x9204;195 /**196 * Maximum aperture value of lens. You can convert to F-number by calculating197 * power of root 2 (same process of ApertureValue:0x9202).198 * The actual aperture value of lens when the image was taken. To convert this199 * value to ordinary f-number(f-stop), calculate the value's power of root 2200 * (=1.4142). For example, if the ApertureValue is '5', f-number is 1.41425^5 = F5.6.201 */202 public static final int TAG_MAX_APERTURE = 0x9205;203 /**204 * Indicates the distance the autofocus camera is focused to. Tends to be less accurate as distance increases.205 */206 public static final int TAG_SUBJECT_DISTANCE = 0x9206;207 /**208 * Exposure metering method. '0' means unknown, '1' average, '2' center209 * weighted average, '3' spot, '4' multi-spot, '5' multi-segment, '6' partial,210 * '255' other.211 */212 public static final int TAG_METERING_MODE = 0x9207;213 214 public static final int TAG_LIGHT_SOURCE = 0x9208;215 /**216 * White balance (aka light source). '0' means unknown, '1' daylight,217 * '2' fluorescent, '3' tungsten, '10' flash, '17' standard light A,218 * '18' standard light B, '19' standard light C, '20' D55, '21' D65,219 * '22' D75, '255' other.220 */221 public static final int TAG_WHITE_BALANCE = 0x9208;222 /**223 * 0x0 = 0000000 = No Flash224 * 0x1 = 0000001 = Fired225 * 0x5 = 0000101 = Fired, Return not detected226 * 0x7 = 0000111 = Fired, Return detected227 * 0x9 = 0001001 = On228 * 0xd = 0001101 = On, Return not detected229 * 0xf = 0001111 = On, Return detected230 * 0x10 = 0010000 = Off231 * 0x18 = 0011000 = Auto, Did not fire232 * 0x19 = 0011001 = Auto, Fired233 * 0x1d = 0011101 = Auto, Fired, Return not detected234 * 0x1f = 0011111 = Auto, Fired, Return detected235 * 0x20 = 0100000 = No flash function236 * 0x41 = 1000001 = Fired, Red-eye reduction237 * 0x45 = 1000101 = Fired, Red-eye reduction, Return not detected238 * 0x47 = 1000111 = Fired, Red-eye reduction, Return detected239 * 0x49 = 1001001 = On, Red-eye reduction240 * 0x4d = 1001101 = On, Red-eye reduction, Return not detected241 * 0x4f = 1001111 = On, Red-eye reduction, Return detected242 * 0x59 = 1011001 = Auto, Fired, Red-eye reduction243 * 0x5d = 1011101 = Auto, Fired, Red-eye reduction, Return not detected244 * 0x5f = 1011111 = Auto, Fired, Red-eye reduction, Return detected245 * 6543210 (positions)246 *247 * This is a bitmask.248 * 0 = flash fired249 * 1 = return detected250 * 2 = return able to be detected251 * 3 = unknown252 * 4 = auto used253 * 5 = unknown254 * 6 = red eye reduction used255 */256 public static final int TAG_FLASH = 0x9209;257 /**258 * Focal length of lens used to take image. Unit is millimeter.259 * Nice digital cameras actually save the focal length as a function of how far they are zoomed in.260 */261 public static final int TAG_FOCAL_LENGTH = 0x920A;262 263 /**264 * This tag holds the Exif Makernote. Makernotes are free to be in any format, though they are often IFDs.265 * To determine the format, we consider the starting bytes of the makernote itself and sometimes the266 * camera model and make.267 * <p>268 * The component count for this tag includes all of the bytes needed for the makernote.269 */270 public static final int TAG_MAKERNOTE = 0x927C;271 272 public static final int TAG_USER_COMMENT = 0x9286;273 274 public static final int TAG_SUBSECOND_TIME = 0x9290;275 public static final int TAG_SUBSECOND_TIME_ORIGINAL = 0x9291;276 public static final int TAG_SUBSECOND_TIME_DIGITIZED = 0x9292;277 278 public static final int TAG_FLASHPIX_VERSION = 0xA000;279 /**280 * Defines Color Space. DCF image must use sRGB color space so value is281 * always '1'. If the picture uses the other color space, value is282 * '65535':Uncalibrated.283 */284 public static final int TAG_COLOR_SPACE = 0xA001;285 public static final int TAG_EXIF_IMAGE_WIDTH = 0xA002;286 public static final int TAG_EXIF_IMAGE_HEIGHT = 0xA003;287 public static final int TAG_RELATED_SOUND_FILE = 0xA004;288 289 34 /** This tag is a pointer to the Exif Interop IFD. */ 290 35 public static final int TAG_INTEROP_OFFSET = 0xA005; 291 36 292 public static final int TAG_FOCAL_PLANE_X_RESOLUTION = 0xA20E; 293 public static final int TAG_FOCAL_PLANE_Y_RESOLUTION = 0xA20F; 294 /** 295 * Unit of FocalPlaneXResolution/FocalPlaneYResolution. '1' means no-unit, 296 * '2' inch, '3' centimeter. 297 * 298 * Note: Some of Fujifilm's digicam(e.g.FX2700,FX2900,Finepix4700Z/40i etc) 299 * uses value '3' so it must be 'centimeter', but it seems that they use a 300 * '8.3mm?'(1/3in.?) to their ResolutionUnit. Fuji's BUG? Finepix4900Z has 301 * been changed to use value '2' but it doesn't match to actual value also. 302 */ 303 public static final int TAG_FOCAL_PLANE_RESOLUTION_UNIT = 0xA210; 304 public static final int TAG_EXPOSURE_INDEX = 0xA215; 305 public static final int TAG_SENSING_METHOD = 0xA217; 306 public static final int TAG_FILE_SOURCE = 0xA300; 307 public static final int TAG_SCENE_TYPE = 0xA301; 308 public static final int TAG_CFA_PATTERN = 0xA302; 309 310 // these tags new with Exif 2.2 (?) [A401 - A4 311 /** 312 * This tag indicates the use of special processing on image data, such as rendering 313 * geared to output. When special processing is performed, the reader is expected to 314 * disable or minimize any further processing. 315 * Tag = 41985 (A401.H) 316 * Type = SHORT 317 * Count = 1 318 * Default = 0 319 * 0 = Normal process 320 * 1 = Custom process 321 * Other = reserved 322 */ 323 public static final int TAG_CUSTOM_RENDERED = 0xA401; 324 325 /** 326 * This tag indicates the exposure mode set when the image was shot. In auto-bracketing 327 * mode, the camera shoots a series of frames of the same scene at different exposure settings. 328 * Tag = 41986 (A402.H) 329 * Type = SHORT 330 * Count = 1 331 * Default = none 332 * 0 = Auto exposure 333 * 1 = Manual exposure 334 * 2 = Auto bracket 335 * Other = reserved 336 */ 337 public static final int TAG_EXPOSURE_MODE = 0xA402; 338 339 /** 340 * This tag indicates the white balance mode set when the image was shot. 341 * Tag = 41987 (A403.H) 342 * Type = SHORT 343 * Count = 1 344 * Default = none 345 * 0 = Auto white balance 346 * 1 = Manual white balance 347 * Other = reserved 348 */ 349 public static final int TAG_WHITE_BALANCE_MODE = 0xA403; 350 351 /** 352 * This tag indicates the digital zoom ratio when the image was shot. If the 353 * numerator of the recorded value is 0, this indicates that digital zoom was 354 * not used. 355 * Tag = 41988 (A404.H) 356 * Type = RATIONAL 357 * Count = 1 358 * Default = none 359 */ 360 public static final int TAG_DIGITAL_ZOOM_RATIO = 0xA404; 361 362 /** 363 * This tag indicates the equivalent focal length assuming a 35mm film camera, 364 * in mm. A value of 0 means the focal length is unknown. Note that this tag 365 * differs from the FocalLength tag. 366 * Tag = 41989 (A405.H) 367 * Type = SHORT 368 * Count = 1 369 * Default = none 370 */ 371 public static final int TAG_35MM_FILM_EQUIV_FOCAL_LENGTH = 0xA405; 372 373 /** 374 * This tag indicates the type of scene that was shot. It can also be used to 375 * record the mode in which the image was shot. Note that this differs from 376 * the scene type (SceneType) tag. 377 * Tag = 41990 (A406.H) 378 * Type = SHORT 379 * Count = 1 380 * Default = 0 381 * 0 = Standard 382 * 1 = Landscape 383 * 2 = Portrait 384 * 3 = Night scene 385 * Other = reserved 386 */ 387 public static final int TAG_SCENE_CAPTURE_TYPE = 0xA406; 388 389 /** 390 * This tag indicates the degree of overall image gain adjustment. 391 * Tag = 41991 (A407.H) 392 * Type = SHORT 393 * Count = 1 394 * Default = none 395 * 0 = None 396 * 1 = Low gain up 397 * 2 = High gain up 398 * 3 = Low gain down 399 * 4 = High gain down 400 * Other = reserved 401 */ 402 public static final int TAG_GAIN_CONTROL = 0xA407; 403 404 /** 405 * This tag indicates the direction of contrast processing applied by the camera 406 * when the image was shot. 407 * Tag = 41992 (A408.H) 408 * Type = SHORT 409 * Count = 1 410 * Default = 0 411 * 0 = Normal 412 * 1 = Soft 413 * 2 = Hard 414 * Other = reserved 415 */ 416 public static final int TAG_CONTRAST = 0xA408; 417 418 /** 419 * This tag indicates the direction of saturation processing applied by the camera 420 * when the image was shot. 421 * Tag = 41993 (A409.H) 422 * Type = SHORT 423 * Count = 1 424 * Default = 0 425 * 0 = Normal 426 * 1 = Low saturation 427 * 2 = High saturation 428 * Other = reserved 429 */ 430 public static final int TAG_SATURATION = 0xA409; 431 432 /** 433 * This tag indicates the direction of sharpness processing applied by the camera 434 * when the image was shot. 435 * Tag = 41994 (A40A.H) 436 * Type = SHORT 437 * Count = 1 438 * Default = 0 439 * 0 = Normal 440 * 1 = Soft 441 * 2 = Hard 442 * Other = reserved 443 */ 444 public static final int TAG_SHARPNESS = 0xA40A; 445 446 // TODO support this tag (I haven't seen a camera's actual implementation of this yet) 447 448 /** 449 * This tag indicates information on the picture-taking conditions of a particular 450 * camera model. The tag is used only to indicate the picture-taking conditions in 451 * the reader. 452 * Tag = 41995 (A40B.H) 453 * Type = UNDEFINED 454 * Count = Any 455 * Default = none 456 * 457 * The information is recorded in the format shown below. The data is recorded 458 * in Unicode using SHORT type for the number of display rows and columns and 459 * UNDEFINED type for the camera settings. The Unicode (UCS-2) string including 460 * Signature is NULL terminated. The specifics of the Unicode string are as given 461 * in ISO/IEC 10464-1. 462 * 463 * Length Type Meaning 464 * ------+-----------+------------------ 465 * 2 SHORT Display columns 466 * 2 SHORT Display rows 467 * Any UNDEFINED Camera setting-1 468 * Any UNDEFINED Camera setting-2 469 * : : : 470 * Any UNDEFINED Camera setting-n 471 */ 472 public static final int TAG_DEVICE_SETTING_DESCRIPTION = 0xA40B; 473 474 /** 475 * This tag indicates the distance to the subject. 476 * Tag = 41996 (A40C.H) 477 * Type = SHORT 478 * Count = 1 479 * Default = none 480 * 0 = unknown 481 * 1 = Macro 482 * 2 = Close view 483 * 3 = Distant view 484 * Other = reserved 485 */ 486 public static final int TAG_SUBJECT_DISTANCE_RANGE = 0xA40C; 487 488 /** 489 * This tag indicates an identifier assigned uniquely to each image. It is 490 * recorded as an ASCII string equivalent to hexadecimal notation and 128-bit 491 * fixed length. 492 * Tag = 42016 (A420.H) 493 * Type = ASCII 494 * Count = 33 495 * Default = none 496 */ 497 public static final int TAG_IMAGE_UNIQUE_ID = 0xA420; 498 499 /** String. */ 500 public static final int TAG_CAMERA_OWNER_NAME = 0xA430; 501 /** String. */ 502 public static final int TAG_BODY_SERIAL_NUMBER = 0xA431; 503 /** An array of four Rational64u numbers giving focal and aperture ranges. */ 504 public static final int TAG_LENS_SPECIFICATION = 0xA432; 505 /** String. */ 506 public static final int TAG_LENS_MAKE = 0xA433; 507 /** String. */ 508 public static final int TAG_LENS_MODEL = 0xA434; 509 /** String. */ 510 public static final int TAG_LENS_SERIAL_NUMBER = 0xA435; 511 /** Rational64u. */ 512 public static final int TAG_GAMMA = 0xA500; 513 514 public static final int TAG_LENS = 0xFDEA; 37 public ExifSubIFDDirectory() 38 { 39 this.setDescriptor(new ExifSubIFDDescriptor(this)); 40 } 515 41 516 42 @NotNull … … 519 45 static 520 46 { 521 _tagNameMap.put(TAG_FILL_ORDER, "Fill Order"); 522 _tagNameMap.put(TAG_DOCUMENT_NAME, "Document Name"); 523 // TODO why don't these tags have fields associated with them? 524 _tagNameMap.put(0x1000, "Related Image File Format"); 525 _tagNameMap.put(0x1001, "Related Image Width"); 526 _tagNameMap.put(0x1002, "Related Image Length"); 527 _tagNameMap.put(0x0156, "Transfer Range"); 528 _tagNameMap.put(0x0200, "JPEG Proc"); 529 _tagNameMap.put(TAG_COMPRESSED_AVERAGE_BITS_PER_PIXEL, "Compressed Bits Per Pixel"); 530 _tagNameMap.put(TAG_MAKERNOTE, "Makernote"); 531 _tagNameMap.put(TAG_INTEROP_OFFSET, "Interoperability Offset"); 532 533 _tagNameMap.put(TAG_NEW_SUBFILE_TYPE, "New Subfile Type"); 534 _tagNameMap.put(TAG_SUBFILE_TYPE, "Subfile Type"); 535 _tagNameMap.put(TAG_BITS_PER_SAMPLE, "Bits Per Sample"); 536 _tagNameMap.put(TAG_PHOTOMETRIC_INTERPRETATION, "Photometric Interpretation"); 537 _tagNameMap.put(TAG_THRESHOLDING, "Thresholding"); 538 _tagNameMap.put(TAG_STRIP_OFFSETS, "Strip Offsets"); 539 _tagNameMap.put(TAG_SAMPLES_PER_PIXEL, "Samples Per Pixel"); 540 _tagNameMap.put(TAG_ROWS_PER_STRIP, "Rows Per Strip"); 541 _tagNameMap.put(TAG_STRIP_BYTE_COUNTS, "Strip Byte Counts"); 542 _tagNameMap.put(TAG_PAGE_NAME, "Page Name"); 543 _tagNameMap.put(TAG_PLANAR_CONFIGURATION, "Planar Configuration"); 544 _tagNameMap.put(TAG_TRANSFER_FUNCTION, "Transfer Function"); 545 _tagNameMap.put(TAG_PREDICTOR, "Predictor"); 546 _tagNameMap.put(TAG_TILE_WIDTH, "Tile Width"); 547 _tagNameMap.put(TAG_TILE_LENGTH, "Tile Length"); 548 _tagNameMap.put(TAG_TILE_OFFSETS, "Tile Offsets"); 549 _tagNameMap.put(TAG_TILE_BYTE_COUNTS, "Tile Byte Counts"); 550 _tagNameMap.put(TAG_JPEG_TABLES, "JPEG Tables"); 551 _tagNameMap.put(TAG_YCBCR_SUBSAMPLING, "YCbCr Sub-Sampling"); 552 _tagNameMap.put(TAG_CFA_REPEAT_PATTERN_DIM, "CFA Repeat Pattern Dim"); 553 _tagNameMap.put(TAG_CFA_PATTERN_2, "CFA Pattern"); 554 _tagNameMap.put(TAG_BATTERY_LEVEL, "Battery Level"); 555 _tagNameMap.put(TAG_EXPOSURE_TIME, "Exposure Time"); 556 _tagNameMap.put(TAG_FNUMBER, "F-Number"); 557 _tagNameMap.put(TAG_IPTC_NAA, "IPTC/NAA"); 558 _tagNameMap.put(TAG_INTER_COLOR_PROFILE, "Inter Color Profile"); 559 _tagNameMap.put(TAG_EXPOSURE_PROGRAM, "Exposure Program"); 560 _tagNameMap.put(TAG_SPECTRAL_SENSITIVITY, "Spectral Sensitivity"); 561 _tagNameMap.put(TAG_ISO_EQUIVALENT, "ISO Speed Ratings"); 562 _tagNameMap.put(TAG_OPTO_ELECTRIC_CONVERSION_FUNCTION, "Opto-electric Conversion Function (OECF)"); 563 _tagNameMap.put(TAG_INTERLACE, "Interlace"); 564 _tagNameMap.put(TAG_TIME_ZONE_OFFSET, "Time Zone Offset"); 565 _tagNameMap.put(TAG_SELF_TIMER_MODE, "Self Timer Mode"); 566 _tagNameMap.put(TAG_EXIF_VERSION, "Exif Version"); 567 _tagNameMap.put(TAG_DATETIME_ORIGINAL, "Date/Time Original"); 568 _tagNameMap.put(TAG_DATETIME_DIGITIZED, "Date/Time Digitized"); 569 _tagNameMap.put(TAG_COMPONENTS_CONFIGURATION, "Components Configuration"); 570 _tagNameMap.put(TAG_SHUTTER_SPEED, "Shutter Speed Value"); 571 _tagNameMap.put(TAG_APERTURE, "Aperture Value"); 572 _tagNameMap.put(TAG_BRIGHTNESS_VALUE, "Brightness Value"); 573 _tagNameMap.put(TAG_EXPOSURE_BIAS, "Exposure Bias Value"); 574 _tagNameMap.put(TAG_MAX_APERTURE, "Max Aperture Value"); 575 _tagNameMap.put(TAG_SUBJECT_DISTANCE, "Subject Distance"); 576 _tagNameMap.put(TAG_METERING_MODE, "Metering Mode"); 577 _tagNameMap.put(TAG_LIGHT_SOURCE, "Light Source"); 578 _tagNameMap.put(TAG_WHITE_BALANCE, "White Balance"); 579 _tagNameMap.put(TAG_FLASH, "Flash"); 580 _tagNameMap.put(TAG_FOCAL_LENGTH, "Focal Length"); 581 _tagNameMap.put(TAG_FLASH_ENERGY, "Flash Energy"); 582 _tagNameMap.put(TAG_SPATIAL_FREQ_RESPONSE, "Spatial Frequency Response"); 583 _tagNameMap.put(TAG_NOISE, "Noise"); 584 _tagNameMap.put(TAG_IMAGE_NUMBER, "Image Number"); 585 _tagNameMap.put(TAG_SECURITY_CLASSIFICATION, "Security Classification"); 586 _tagNameMap.put(TAG_IMAGE_HISTORY, "Image History"); 587 _tagNameMap.put(TAG_SUBJECT_LOCATION, "Subject Location"); 588 _tagNameMap.put(TAG_EXPOSURE_INDEX, "Exposure Index"); 589 _tagNameMap.put(TAG_TIFF_EP_STANDARD_ID, "TIFF/EP Standard ID"); 590 _tagNameMap.put(TAG_USER_COMMENT, "User Comment"); 591 _tagNameMap.put(TAG_SUBSECOND_TIME, "Sub-Sec Time"); 592 _tagNameMap.put(TAG_SUBSECOND_TIME_ORIGINAL, "Sub-Sec Time Original"); 593 _tagNameMap.put(TAG_SUBSECOND_TIME_DIGITIZED, "Sub-Sec Time Digitized"); 594 _tagNameMap.put(TAG_FLASHPIX_VERSION, "FlashPix Version"); 595 _tagNameMap.put(TAG_COLOR_SPACE, "Color Space"); 596 _tagNameMap.put(TAG_EXIF_IMAGE_WIDTH, "Exif Image Width"); 597 _tagNameMap.put(TAG_EXIF_IMAGE_HEIGHT, "Exif Image Height"); 598 _tagNameMap.put(TAG_RELATED_SOUND_FILE, "Related Sound File"); 599 // 0x920B in TIFF/EP 600 _tagNameMap.put(TAG_FLASH_ENERGY_2, "Flash Energy"); 601 // 0x920C in TIFF/EP 602 _tagNameMap.put(TAG_SPATIAL_FREQ_RESPONSE_2, "Spatial Frequency Response"); 603 // 0x920E in TIFF/EP 604 _tagNameMap.put(TAG_FOCAL_PLANE_X_RESOLUTION, "Focal Plane X Resolution"); 605 // 0x920F in TIFF/EP 606 _tagNameMap.put(TAG_FOCAL_PLANE_Y_RESOLUTION, "Focal Plane Y Resolution"); 607 // 0x9210 in TIFF/EP 608 _tagNameMap.put(TAG_FOCAL_PLANE_RESOLUTION_UNIT, "Focal Plane Resolution Unit"); 609 // 0x9214 in TIFF/EP 610 _tagNameMap.put(TAG_SUBJECT_LOCATION_2, "Subject Location"); 611 // 0x9215 in TIFF/EP 612 _tagNameMap.put(TAG_EXPOSURE_INDEX_2, "Exposure Index"); 613 // 0x9217 in TIFF/EP 614 _tagNameMap.put(TAG_SENSING_METHOD, "Sensing Method"); 615 _tagNameMap.put(TAG_FILE_SOURCE, "File Source"); 616 _tagNameMap.put(TAG_SCENE_TYPE, "Scene Type"); 617 _tagNameMap.put(TAG_CFA_PATTERN, "CFA Pattern"); 618 619 _tagNameMap.put(TAG_CUSTOM_RENDERED, "Custom Rendered"); 620 _tagNameMap.put(TAG_EXPOSURE_MODE, "Exposure Mode"); 621 _tagNameMap.put(TAG_WHITE_BALANCE_MODE, "White Balance Mode"); 622 _tagNameMap.put(TAG_DIGITAL_ZOOM_RATIO, "Digital Zoom Ratio"); 623 _tagNameMap.put(TAG_35MM_FILM_EQUIV_FOCAL_LENGTH, "Focal Length 35"); 624 _tagNameMap.put(TAG_SCENE_CAPTURE_TYPE, "Scene Capture Type"); 625 _tagNameMap.put(TAG_GAIN_CONTROL, "Gain Control"); 626 _tagNameMap.put(TAG_CONTRAST, "Contrast"); 627 _tagNameMap.put(TAG_SATURATION, "Saturation"); 628 _tagNameMap.put(TAG_SHARPNESS, "Sharpness"); 629 _tagNameMap.put(TAG_DEVICE_SETTING_DESCRIPTION, "Device Setting Description"); 630 _tagNameMap.put(TAG_SUBJECT_DISTANCE_RANGE, "Subject Distance Range"); 631 _tagNameMap.put(TAG_IMAGE_UNIQUE_ID, "Unique Image ID"); 632 633 _tagNameMap.put(TAG_CAMERA_OWNER_NAME, "Camera Owner Name"); 634 _tagNameMap.put(TAG_BODY_SERIAL_NUMBER, "Body Serial Number"); 635 _tagNameMap.put(TAG_LENS_SPECIFICATION, "Lens Specification"); 636 _tagNameMap.put(TAG_LENS_MAKE, "Lens Make"); 637 _tagNameMap.put(TAG_LENS_MODEL, "Lens Model"); 638 _tagNameMap.put(TAG_LENS_SERIAL_NUMBER, "Lens Serial Number"); 639 _tagNameMap.put(TAG_GAMMA, "Gamma"); 640 641 _tagNameMap.put(TAG_MIN_SAMPLE_VALUE, "Minimum sample value"); 642 _tagNameMap.put(TAG_MAX_SAMPLE_VALUE, "Maximum sample value"); 643 644 _tagNameMap.put(TAG_LENS, "Lens"); 645 } 646 647 public ExifSubIFDDirectory() 648 { 649 this.setDescriptor(new ExifSubIFDDescriptor(this)); 47 addExifTagNames(_tagNameMap); 650 48 } 651 49
Note:
See TracChangeset
for help on using the changeset viewer.
