source: josm/trunk/src/com/drew/metadata/exif/ExifSubIFDDirectory.java@ 8132

Last change on this file since 8132 was 8132, checked in by Don-vip, 11 years ago

fix #11162 - update to metadata-extractor 2.7.2

  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 27.1 KB
Line 
1/*
2 * Copyright 2002-2015 Drew Noakes
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 * More information about this project is available at:
17 *
18 * https://drewnoakes.com/code/exif/
19 * https://github.com/drewnoakes/metadata-extractor
20 */
21package com.drew.metadata.exif;
22
23import com.drew.lang.annotations.NotNull;
24import com.drew.metadata.Directory;
25
26import java.util.HashMap;
27
28/**
29 * Describes Exif tags from the SubIFD directory.
30 *
31 * @author Drew Noakes https://drewnoakes.com
32 */
33public class ExifSubIFDDirectory extends Directory
34{
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's
38 * 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 bits
44 * 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 = WhiteIsZero
51 * 1 = BlackIsZero
52 * 2 = RGB
53 * 3 = RGB Palette
54 * 4 = Transparency Mask
55 * 5 = CMYK
56 * 6 = YCbCr
57 * 8 = CIELab
58 * 9 = ICCLab
59 * 10 = ITULab
60 * 32803 = Color Filter Array
61 * 32844 = Pixar LogL
62 * 32845 = Pixar LogLuv
63 * 34892 = Linear Raw
64 */
65 public static final int TAG_PHOTOMETRIC_INTERPRETATION = 0x0106;
66
67 /**
68 * 1 = No dithering or halftoning
69 * 2 = Ordered dither or halftone
70 * 3 = Randomized dither
71 */
72 public static final int TAG_THRESHOLDING = 0x0107;
73
74 /**
75 * 1 = Normal
76 * 2 = Reversed
77 */
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 of
93 * YCbCr data. If value is '1', Y/Cb/Cr value is chunky format, contiguous for
94 * each subsampling pixel. If value is '2', Y/Cb/Cr value is separated and
95 * 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 Image
103 * 1 = Reduced-resolution image
104 * 2 = Single page of multi-page image
105 * 3 = Single page of multi-page reduced-resolution image
106 * 4 = Transparency mask
107 * 5 = Transparency mask of reduced-resolution image
108 * 6 = Transparency mask of multi-page image
109 * 7 = Transparency mask of reduced-resolution multi-page image
110 */
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 image
117 */
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' means
173 * manual control, '2' program normal, '3' aperture priority, '4' shutter
174 * priority, '5' program creative (slow program), '6' program action
175 * (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 the
190 * 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 calculating
197 * power of root 2 (same process of ApertureValue:0x9202).
198 * The actual aperture value of lens when the image was taken. To convert this
199 * value to ordinary f-number(f-stop), calculate the value's power of root 2
200 * (=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' center
209 * 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 Flash
224 * 0x1 = 0000001 = Fired
225 * 0x5 = 0000101 = Fired, Return not detected
226 * 0x7 = 0000111 = Fired, Return detected
227 * 0x9 = 0001001 = On
228 * 0xd = 0001101 = On, Return not detected
229 * 0xf = 0001111 = On, Return detected
230 * 0x10 = 0010000 = Off
231 * 0x18 = 0011000 = Auto, Did not fire
232 * 0x19 = 0011001 = Auto, Fired
233 * 0x1d = 0011101 = Auto, Fired, Return not detected
234 * 0x1f = 0011111 = Auto, Fired, Return detected
235 * 0x20 = 0100000 = No flash function
236 * 0x41 = 1000001 = Fired, Red-eye reduction
237 * 0x45 = 1000101 = Fired, Red-eye reduction, Return not detected
238 * 0x47 = 1000111 = Fired, Red-eye reduction, Return detected
239 * 0x49 = 1001001 = On, Red-eye reduction
240 * 0x4d = 1001101 = On, Red-eye reduction, Return not detected
241 * 0x4f = 1001111 = On, Red-eye reduction, Return detected
242 * 0x59 = 1011001 = Auto, Fired, Red-eye reduction
243 * 0x5d = 1011101 = Auto, Fired, Red-eye reduction, Return not detected
244 * 0x5f = 1011111 = Auto, Fired, Red-eye reduction, Return detected
245 * 6543210 (positions)
246 *
247 * This is a bitmask.
248 * 0 = flash fired
249 * 1 = return detected
250 * 2 = return able to be detected
251 * 3 = unknown
252 * 4 = auto used
253 * 5 = unknown
254 * 6 = red eye reduction used
255 */
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 the
266 * 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 is
281 * always '1'. If the picture uses the other color space, value is
282 * '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 /** This tag is a pointer to the Exif Interop IFD. */
290 public static final int TAG_INTEROP_OFFSET = 0xA005;
291
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;
515
516 @NotNull
517 protected static final HashMap<Integer, String> _tagNameMap = new HashMap<Integer, String>();
518
519 static
520 {
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));
650 }
651
652 @Override
653 @NotNull
654 public String getName()
655 {
656 return "Exif SubIFD";
657 }
658
659 @Override
660 @NotNull
661 protected HashMap<Integer, String> getTagNameMap()
662 {
663 return _tagNameMap;
664 }
665}
Note: See TracBrowser for help on using the repository browser.