Ignore:
Timestamp:
2015-04-21T00:42:50+02:00 (11 years ago)
Author:
Don-vip
Message:

fix #11359 - update to metadata-extractor 2.8.1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/com/drew/metadata/exif/ExifSubIFDDirectory.java

    r8132 r8243  
    2222
    2323import com.drew.lang.annotations.NotNull;
    24 import com.drew.metadata.Directory;
    2524
    2625import java.util.HashMap;
     
    3130 * @author Drew Noakes https://drewnoakes.com
    3231 */
    33 public class ExifSubIFDDirectory extends Directory
     32public class ExifSubIFDDirectory extends ExifDirectoryBase
    3433{
    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 
    28934    /** This tag is a pointer to the Exif Interop IFD. */
    29035    public static final int TAG_INTEROP_OFFSET = 0xA005;
    29136
    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    }
    51541
    51642    @NotNull
     
    51945    static
    52046    {
    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);
    65048    }
    65149
Note: See TracChangeset for help on using the changeset viewer.