image_voodoo 0.8.7 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1689 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'image_voodoo_jars'
4
+ require 'stringio'
5
+
6
+ class ImageVoodoo
7
+ # Metadata contained within the image.
8
+ class Metadata
9
+ def initialize(io)
10
+ @metadata = com.drew.imaging.ImageMetadataReader.read_metadata io
11
+ end
12
+
13
+ ##
14
+ # This will return a fairly useless Directory if you ask for one
15
+ # and there is no data in the image you are requesting. The reason
16
+ # for doing this is so queries like 'md[:ISFD0][:Orientation]' can
17
+ # run and just return nil since I think this is the common case.
18
+ #
19
+ # See Directory#exists? if you want to make sure the group you are
20
+ # requesting actually exists or not.
21
+ #
22
+ def [](dirname)
23
+ dirclass = DIRECTORY_MAP[dirname.to_s]
24
+
25
+ raise ArgumentError, "Uknown metadata group: #{dirname}" unless dirclass
26
+
27
+ dirclass.new @metadata
28
+ end
29
+
30
+ # Common metadata methods exposed as convenience functions so users
31
+ # do not need to dig around in the various directories
32
+ def make
33
+ self[:IFD0][:Make]
34
+ end
35
+
36
+ def model
37
+ self[:IFD0][:Model]
38
+ end
39
+
40
+ def orientation
41
+ self[:IFD0][:Orientation]
42
+ end
43
+
44
+ # FIXME: I wonder if this needs to fall back to try all other directories
45
+ # for Image Height
46
+ def height
47
+ self['Exif Sub IFD']['Exif Image Height']
48
+ end
49
+
50
+ def width
51
+ self['Exif Sub IFD']['Exif Image Width']
52
+ end
53
+
54
+ def to_s
55
+ out = StringIO.new
56
+ out.puts "[{dir name}] - {tag name} = {tag descr}"
57
+ out.puts "---------------------------------------"
58
+ @metadata.directories.each do |directory|
59
+ directory.tags.each do |tag|
60
+ out.puts "[#{directory.name}] - #{tag.tag_name} = #{tag.description}"
61
+ end
62
+ end
63
+ out.string
64
+ end
65
+ end
66
+
67
+ # All metadata are contained within Directories. An image may have n
68
+ # directories. You have to know a bit about the image to khow what to
69
+ # look at (e.g. a image from a Pentax camera may have a PentaxMakerNote
70
+ # directory.
71
+ class Directory
72
+ def initialize(metadata)
73
+ jclass = self.class.directory_class.java_class
74
+ @directory = metadata.get_first_directory_of_type jclass
75
+ end
76
+
77
+ ##
78
+ # Does the directory you requested exist as metadata for this image.
79
+ def exists?
80
+ @directory
81
+ end
82
+
83
+ ##
84
+ # Return tag value for the tag specified or nil if there is none
85
+ # defined.
86
+ def [](tag_name)
87
+ return nil unless @directory
88
+
89
+ (tag_type, tag_method) = self.class::TAGS[tag_name.to_s]
90
+
91
+ raise ArgumentError, "Unkown tag_name: #{tag_name}" unless tag_type
92
+
93
+ java_tag_type = self.class.directory_class.const_get tag_type
94
+
95
+ return nil unless @directory.contains_tag java_tag_type
96
+
97
+ @directory.__send__ tag_method, java_tag_type
98
+ end
99
+ end
100
+
101
+ # GENERATED
102
+ class AdobeJpegDirectory < Directory
103
+ java_import com.drew.metadata.adobe.AdobeJpegDirectory
104
+
105
+ def self.directory_class
106
+ com.drew.metadata.adobe.AdobeJpegDirectory
107
+ end
108
+
109
+ TAGS = {
110
+ 'Dct Encode Version' => ['TAG_DCT_ENCODE_VERSION', :get_string],
111
+ 'App14 Flags0' => ['TAG_APP14_FLAGS0', :get_string],
112
+ 'App14 Flags1' => ['TAG_APP14_FLAGS1', :get_string],
113
+ 'Color Transform' => ['TAG_COLOR_TRANSFORM', :get_string]
114
+ }.freeze
115
+ end
116
+
117
+ # GENERATED
118
+ class BmpHeaderDirectory < Directory
119
+ java_import com.drew.metadata.bmp.BmpHeaderDirectory
120
+
121
+ def self.directory_class
122
+ com.drew.metadata.bmp.BmpHeaderDirectory
123
+ end
124
+
125
+ TAGS = {
126
+ 'Header Size' => ['TAG_HEADER_SIZE', :get_string],
127
+ 'Image Height' => ['TAG_IMAGE_HEIGHT', :get_long],
128
+ 'Image Width' => ['TAG_IMAGE_WIDTH', :get_long],
129
+ 'Colour Planes' => ['TAG_COLOUR_PLANES', :get_string],
130
+ 'Bits Per Pixel' => ['TAG_BITS_PER_PIXEL', :get_string],
131
+ 'Compression' => ['TAG_COMPRESSION', :get_int],
132
+ 'X Pixels Per Meter' => ['TAG_X_PIXELS_PER_METER', :get_string],
133
+ 'Y Pixels Per Meter' => ['TAG_Y_PIXELS_PER_METER', :get_string],
134
+ 'Palette Colour Count' => ['TAG_PALETTE_COLOUR_COUNT', :get_string],
135
+ 'Important Colour Count' => ['TAG_IMPORTANT_COLOUR_COUNT', :get_string]
136
+ }.freeze
137
+ end
138
+
139
+ # GENERATED
140
+ class ExifIFD0Directory < Directory
141
+ java_import com.drew.metadata.exif.ExifIFD0Directory
142
+
143
+ def self.directory_class
144
+ com.drew.metadata.exif.ExifIFD0Directory
145
+ end
146
+
147
+ TAGS = {
148
+ 'Image Description' => ['TAG_IMAGE_DESCRIPTION', :get_string],
149
+ 'Make' => ['TAG_MAKE', :get_string],
150
+ 'Model' => ['TAG_MODEL', :get_string],
151
+ 'Orientation' => ['TAG_ORIENTATION', :get_int],
152
+ 'X Resolution' => ['TAG_X_RESOLUTION', :get_rational],
153
+ 'Y Resolution' => ['TAG_Y_RESOLUTION', :get_rational],
154
+ 'Resolution Unit' => ['TAG_RESOLUTION_UNIT', :get_int],
155
+ 'Software' => ['TAG_SOFTWARE', :get_string],
156
+ 'Datetime' => ['TAG_DATETIME', :get_string],
157
+ 'Artist' => ['TAG_ARTIST', :get_string],
158
+ 'White Point' => ['TAG_WHITE_POINT', :get_rational_array],
159
+ 'Primary Chromaticities' => ['TAG_PRIMARY_CHROMATICITIES', :get_rational_array],
160
+ 'Ycbcr Coefficients' => ['TAG_YCBCR_COEFFICIENTS', :get_rational_array],
161
+ 'Ycbcr Positioning' => ['TAG_YCBCR_POSITIONING', :get_int],
162
+ 'Reference Black White' => ['TAG_REFERENCE_BLACK_WHITE', :get_string],
163
+ 'Exif Sub Ifd Offset' => ['TAG_EXIF_SUB_IFD_OFFSET', :get_string],
164
+ 'Gps Info Offset' => ['TAG_GPS_INFO_OFFSET', :get_string],
165
+ 'Copyright' => ['TAG_COPYRIGHT', :get_string],
166
+ 'Time Zone Offset' => ['TAG_TIME_ZONE_OFFSET', :get_string],
167
+ 'Win Title' => ['TAG_WIN_TITLE', :get_string],
168
+ 'Win Comment' => ['TAG_WIN_COMMENT', :get_string],
169
+ 'Win Author' => ['TAG_WIN_AUTHOR', :get_string],
170
+ 'Win Keywords' => ['TAG_WIN_KEYWORDS', :get_string],
171
+ 'Win Subject' => ['TAG_WIN_SUBJECT', :get_string]
172
+ }.freeze
173
+ end
174
+
175
+ # GENERATED
176
+ class ExifInteropDirectory < Directory
177
+ java_import com.drew.metadata.exif.ExifInteropDirectory
178
+
179
+ def self.directory_class
180
+ com.drew.metadata.exif.ExifInteropDirectory
181
+ end
182
+
183
+ TAGS = {
184
+ 'Interop Index' => ['TAG_INTEROP_INDEX', :get_string],
185
+ 'Interop Version' => ['TAG_INTEROP_VERSION', :get_string],
186
+ 'Related Image File Format' => ['TAG_RELATED_IMAGE_FILE_FORMAT', :get_string],
187
+ 'Related Image Width' => ['TAG_RELATED_IMAGE_WIDTH', :get_long],
188
+ 'Related Image Length' => ['TAG_RELATED_IMAGE_LENGTH', :get_long]
189
+ }.freeze
190
+ end
191
+
192
+ # GENERATED
193
+ class ExifSubIFDDirectory < Directory
194
+ java_import com.drew.metadata.exif.ExifSubIFDDirectory
195
+
196
+ def self.directory_class
197
+ com.drew.metadata.exif.ExifSubIFDDirectory
198
+ end
199
+
200
+ TAGS = {
201
+ 'Aperture' => ['TAG_APERTURE', :get_string],
202
+ 'Bits Per Sample' => ['TAG_BITS_PER_SAMPLE', :get_int],
203
+ 'Photometric Interpretation' => ['TAG_PHOTOMETRIC_INTERPRETATION', :get_int],
204
+ 'Thresholding' => ['TAG_THRESHOLDING', :get_int],
205
+ 'Fill Order' => ['TAG_FILL_ORDER', :get_int],
206
+ 'Document Name' => ['TAG_DOCUMENT_NAME', :get_string],
207
+ 'Strip Offsets' => ['TAG_STRIP_OFFSETS', :get_string],
208
+ 'Samples Per Pixel' => ['TAG_SAMPLES_PER_PIXEL', :get_int],
209
+ 'Rows Per Strip' => ['TAG_ROWS_PER_STRIP', :get_long],
210
+ 'Strip Byte Counts' => ['TAG_STRIP_BYTE_COUNTS', :get_long],
211
+ 'Min Sample Value' => ['TAG_MIN_SAMPLE_VALUE', :get_int],
212
+ 'Max Sample Value' => ['TAG_MAX_SAMPLE_VALUE', :get_int],
213
+ 'Planar Configuration' => ['TAG_PLANAR_CONFIGURATION', :get_int],
214
+ 'Ycbcr Subsampling' => ['TAG_YCBCR_SUBSAMPLING', :get_string],
215
+ 'New Subfile Type' => ['TAG_NEW_SUBFILE_TYPE', :get_string],
216
+ 'Subfile Type' => ['TAG_SUBFILE_TYPE', :get_long],
217
+ 'Transfer Function' => ['TAG_TRANSFER_FUNCTION', :get_int_array],
218
+ 'Predictor' => ['TAG_PREDICTOR', :get_int],
219
+ 'Tile Width' => ['TAG_TILE_WIDTH', :get_long],
220
+ 'Tile Length' => ['TAG_TILE_LENGTH', :get_long],
221
+ 'Tile Offsets' => ['TAG_TILE_OFFSETS', :get_string],
222
+ 'Tile Byte Counts' => ['TAG_TILE_BYTE_COUNTS', :get_string],
223
+ 'Jpeg Tables' => ['TAG_JPEG_TABLES', :get_string],
224
+ 'Cfa Repeat Pattern Dim' => ['TAG_CFA_REPEAT_PATTERN_DIM', :get_string],
225
+ 'Cfa Pattern 2' => ['TAG_CFA_PATTERN_2', :get_string],
226
+ 'Battery Level' => ['TAG_BATTERY_LEVEL', :get_string],
227
+ 'Iptc Naa' => ['TAG_IPTC_NAA', :get_string],
228
+ 'Inter Color Profile' => ['TAG_INTER_COLOR_PROFILE', :get_string],
229
+ 'Spectral Sensitivity' => ['TAG_SPECTRAL_SENSITIVITY', :get_string],
230
+ 'Opto Electric Conversion Function' => ['TAG_OPTO_ELECTRIC_CONVERSION_FUNCTION', :get_string],
231
+ 'Interlace' => ['TAG_INTERLACE', :get_string],
232
+ 'Time Zone Offset' => ['TAG_TIME_ZONE_OFFSET', :get_string],
233
+ 'Self Timer Mode' => ['TAG_SELF_TIMER_MODE', :get_string],
234
+ 'Flash Energy' => ['TAG_FLASH_ENERGY', :get_string],
235
+ 'Spatial Freq Response' => ['TAG_SPATIAL_FREQ_RESPONSE', :get_string],
236
+ 'Noise' => ['TAG_NOISE', :get_string],
237
+ 'Image Number' => ['TAG_IMAGE_NUMBER', :get_string],
238
+ 'Security Classification' => ['TAG_SECURITY_CLASSIFICATION', :get_string],
239
+ 'Image History' => ['TAG_IMAGE_HISTORY', :get_string],
240
+ 'Subject Location' => ['TAG_SUBJECT_LOCATION', :get_string],
241
+ 'Exposure Index 2' => ['TAG_EXPOSURE_INDEX_2', :get_string],
242
+ 'Tiff Ep Standard Id' => ['TAG_TIFF_EP_STANDARD_ID', :get_string],
243
+ 'Flash Energy 2' => ['TAG_FLASH_ENERGY_2', :get_string],
244
+ 'Spatial Freq Response 2' => ['TAG_SPATIAL_FREQ_RESPONSE_2', :get_string],
245
+ 'Subject Location 2' => ['TAG_SUBJECT_LOCATION_2', :get_string],
246
+ 'Page Name' => ['TAG_PAGE_NAME', :get_string],
247
+ 'Exposure Time' => ['TAG_EXPOSURE_TIME', :get_rational],
248
+ 'Fnumber' => ['TAG_FNUMBER', :get_rational],
249
+ 'Exposure Program' => ['TAG_EXPOSURE_PROGRAM', :get_string],
250
+ 'Iso Equivalent' => ['TAG_ISO_EQUIVALENT', :get_string],
251
+ 'Exif Version' => ['TAG_EXIF_VERSION', :get_string],
252
+ 'Datetime Original' => ['TAG_DATETIME_ORIGINAL', :get_string],
253
+ 'Datetime Digitized' => ['TAG_DATETIME_DIGITIZED', :get_string],
254
+ 'Components Configuration' => ['TAG_COMPONENTS_CONFIGURATION', :get_string],
255
+ 'Compressed Average Bits Per Pixel' => ['TAG_COMPRESSED_AVERAGE_BITS_PER_PIXEL', :get_string],
256
+ 'Shutter Speed' => ['TAG_SHUTTER_SPEED', :get_string],
257
+ 'Brightness Value' => ['TAG_BRIGHTNESS_VALUE', :get_string],
258
+ 'Exposure Bias' => ['TAG_EXPOSURE_BIAS', :get_string],
259
+ 'Max Aperture' => ['TAG_MAX_APERTURE', :get_string],
260
+ 'Subject Distance' => ['TAG_SUBJECT_DISTANCE', :get_string],
261
+ 'Metering Mode' => ['TAG_METERING_MODE', :get_string],
262
+ 'Light Source' => ['TAG_LIGHT_SOURCE', :get_string],
263
+ 'White Balance' => ['TAG_WHITE_BALANCE', :get_string],
264
+ 'Flash' => ['TAG_FLASH', :get_string],
265
+ 'Focal Length' => ['TAG_FOCAL_LENGTH', :get_string],
266
+ 'Makernote' => ['TAG_MAKERNOTE', :get_string],
267
+ 'User Comment' => ['TAG_USER_COMMENT', :get_string],
268
+ 'Subsecond Time' => ['TAG_SUBSECOND_TIME', :get_string],
269
+ 'Subsecond Time Original' => ['TAG_SUBSECOND_TIME_ORIGINAL', :get_string],
270
+ 'Subsecond Time Digitized' => ['TAG_SUBSECOND_TIME_DIGITIZED', :get_string],
271
+ 'Flashpix Version' => ['TAG_FLASHPIX_VERSION', :get_string],
272
+ 'Color Space' => ['TAG_COLOR_SPACE', :get_string],
273
+ 'Exif Image Width' => ['TAG_EXIF_IMAGE_WIDTH', :get_long],
274
+ 'Exif Image Height' => ['TAG_EXIF_IMAGE_HEIGHT', :get_long],
275
+ 'Related Sound File' => ['TAG_RELATED_SOUND_FILE', :get_string],
276
+ 'Interop Offset' => ['TAG_INTEROP_OFFSET', :get_string],
277
+ 'Focal Plane X Resolution' => ['TAG_FOCAL_PLANE_X_RESOLUTION', :get_string],
278
+ 'Focal Plane Y Resolution' => ['TAG_FOCAL_PLANE_Y_RESOLUTION', :get_string],
279
+ 'Focal Plane Resolution Unit' => ['TAG_FOCAL_PLANE_RESOLUTION_UNIT', :get_string],
280
+ 'Exposure Index' => ['TAG_EXPOSURE_INDEX', :get_string],
281
+ 'Sensing Method' => ['TAG_SENSING_METHOD', :get_string],
282
+ 'File Source' => ['TAG_FILE_SOURCE', :get_string],
283
+ 'Scene Type' => ['TAG_SCENE_TYPE', :get_string],
284
+ 'Cfa Pattern' => ['TAG_CFA_PATTERN', :get_string],
285
+ 'Custom Rendered' => ['TAG_CUSTOM_RENDERED', :get_string],
286
+ 'Exposure Mode' => ['TAG_EXPOSURE_MODE', :get_string],
287
+ 'White Balance Mode' => ['TAG_WHITE_BALANCE_MODE', :get_string],
288
+ 'Digital Zoom Ratio' => ['TAG_DIGITAL_ZOOM_RATIO', :get_string],
289
+ '35mm Film Equiv Focal Length' => ['TAG_35MM_FILM_EQUIV_FOCAL_LENGTH', :get_string],
290
+ 'Scene Capture Type' => ['TAG_SCENE_CAPTURE_TYPE', :get_string],
291
+ 'Gain Control' => ['TAG_GAIN_CONTROL', :get_string],
292
+ 'Contrast' => ['TAG_CONTRAST', :get_string],
293
+ 'Saturation' => ['TAG_SATURATION', :get_string],
294
+ 'Sharpness' => ['TAG_SHARPNESS', :get_string],
295
+ 'Device Setting Description' => ['TAG_DEVICE_SETTING_DESCRIPTION', :get_string],
296
+ 'Subject Distance Range' => ['TAG_SUBJECT_DISTANCE_RANGE', :get_string],
297
+ 'Image Unique Id' => ['TAG_IMAGE_UNIQUE_ID', :get_string],
298
+ 'Camera Owner Name' => ['TAG_CAMERA_OWNER_NAME', :get_string],
299
+ 'Body Serial Number' => ['TAG_BODY_SERIAL_NUMBER', :get_string],
300
+ 'Lens Specification' => ['TAG_LENS_SPECIFICATION', :get_string],
301
+ 'Lens Make' => ['TAG_LENS_MAKE', :get_string],
302
+ 'Lens Model' => ['TAG_LENS_MODEL', :get_string],
303
+ 'Lens Serial Number' => ['TAG_LENS_SERIAL_NUMBER', :get_string],
304
+ 'Gamma' => ['TAG_GAMMA', :get_string],
305
+ 'Lens' => ['TAG_LENS', :get_string]
306
+ }.freeze
307
+ end
308
+
309
+ # GENERATED
310
+ class ExifThumbnailDirectory < Directory
311
+ java_import com.drew.metadata.exif.ExifThumbnailDirectory
312
+
313
+ def self.directory_class
314
+ com.drew.metadata.exif.ExifThumbnailDirectory
315
+ end
316
+
317
+ TAGS = {
318
+ 'Thumbnail Image Width' => ['TAG_THUMBNAIL_IMAGE_WIDTH', :get_long],
319
+ 'Thumbnail Image Height' => ['TAG_THUMBNAIL_IMAGE_HEIGHT', :get_long],
320
+ 'Bits Per Sample' => ['TAG_BITS_PER_SAMPLE', :get_string],
321
+ 'Thumbnail Compression' => ['TAG_THUMBNAIL_COMPRESSION', :get_string],
322
+ 'Photometric Interpretation' => ['TAG_PHOTOMETRIC_INTERPRETATION', :get_string],
323
+ 'Strip Offsets' => ['TAG_STRIP_OFFSETS', :get_string],
324
+ 'Orientation' => ['TAG_ORIENTATION', :get_string],
325
+ 'Samples Per Pixel' => ['TAG_SAMPLES_PER_PIXEL', :get_string],
326
+ 'Rows Per Strip' => ['TAG_ROWS_PER_STRIP', :get_string],
327
+ 'Strip Byte Counts' => ['TAG_STRIP_BYTE_COUNTS', :get_string],
328
+ 'X Resolution' => ['TAG_X_RESOLUTION', :get_long],
329
+ 'Y Resolution' => ['TAG_Y_RESOLUTION', :get_long],
330
+ 'Planar Configuration' => ['TAG_PLANAR_CONFIGURATION', :get_string],
331
+ 'Resolution Unit' => ['TAG_RESOLUTION_UNIT', :get_string],
332
+ 'Thumbnail Offset' => ['TAG_THUMBNAIL_OFFSET', :get_long],
333
+ 'Thumbnail Length' => ['TAG_THUMBNAIL_LENGTH', :get_long],
334
+ 'Ycbcr Coefficients' => ['TAG_YCBCR_COEFFICIENTS', :get_rational_array],
335
+ 'Ycbcr Subsampling' => ['TAG_YCBCR_SUBSAMPLING', :get_int_array],
336
+ 'Ycbcr Positioning' => ['TAG_YCBCR_POSITIONING', :get_int],
337
+ 'Reference Black White' => ['TAG_REFERENCE_BLACK_WHITE', :get_rational_array]
338
+ }.freeze
339
+ end
340
+
341
+ # GENERATED
342
+ class GpsDirectory < Directory
343
+ java_import com.drew.metadata.exif.GpsDirectory
344
+
345
+ def self.directory_class
346
+ com.drew.metadata.exif.GpsDirectory
347
+ end
348
+
349
+ TAGS = {
350
+ 'Version Id' => ['TAG_VERSION_ID', :get_int_array],
351
+ 'Latitude Ref' => ['TAG_LATITUDE_REF', :get_string],
352
+ 'Latitude' => ['TAG_LATITUDE', :get_string],
353
+ 'Longitude Ref' => ['TAG_LONGITUDE_REF', :get_string],
354
+ 'Longitude' => ['TAG_LONGITUDE', :get_string],
355
+ 'Altitude Ref' => ['TAG_ALTITUDE_REF', :get_string],
356
+ 'Altitude' => ['TAG_ALTITUDE', :get_string],
357
+ 'Time Stamp' => ['TAG_TIME_STAMP', :get_string],
358
+ 'Satellites' => ['TAG_SATELLITES', :get_string],
359
+ 'Status' => ['TAG_STATUS', :get_string],
360
+ 'Measure Mode' => ['TAG_MEASURE_MODE', :get_string],
361
+ 'Dop' => ['TAG_DOP', :get_string],
362
+ 'Speed Ref' => ['TAG_SPEED_REF', :get_string],
363
+ 'Speed' => ['TAG_SPEED', :get_string],
364
+ 'Track Ref' => ['TAG_TRACK_REF', :get_string],
365
+ 'Track' => ['TAG_TRACK', :get_string],
366
+ 'Img Direction Ref' => ['TAG_IMG_DIRECTION_REF', :get_string],
367
+ 'Img Direction' => ['TAG_IMG_DIRECTION', :get_string],
368
+ 'Map Datum' => ['TAG_MAP_DATUM', :get_string],
369
+ 'Dest Latitude Ref' => ['TAG_DEST_LATITUDE_REF', :get_string],
370
+ 'Dest Latitude' => ['TAG_DEST_LATITUDE', :get_string],
371
+ 'Dest Longitude Ref' => ['TAG_DEST_LONGITUDE_REF', :get_string],
372
+ 'Dest Longitude' => ['TAG_DEST_LONGITUDE', :get_string],
373
+ 'Dest Bearing Ref' => ['TAG_DEST_BEARING_REF', :get_string],
374
+ 'Dest Bearing' => ['TAG_DEST_BEARING', :get_string],
375
+ 'Dest Distance Ref' => ['TAG_DEST_DISTANCE_REF', :get_string],
376
+ 'Dest Distance' => ['TAG_DEST_DISTANCE', :get_string],
377
+ 'Processing Method' => ['TAG_PROCESSING_METHOD', :get_string],
378
+ 'Area Information' => ['TAG_AREA_INFORMATION', :get_string],
379
+ 'Date Stamp' => ['TAG_DATE_STAMP', :get_string],
380
+ 'Differential' => ['TAG_DIFFERENTIAL', :get_string]
381
+ }.freeze
382
+ end
383
+
384
+ # GENERATED
385
+ class CanonMakernoteDirectory < Directory
386
+ java_import com.drew.metadata.exif.makernotes.CanonMakernoteDirectory
387
+
388
+ def self.directory_class
389
+ com.drew.metadata.exif.makernotes.CanonMakernoteDirectory
390
+ end
391
+
392
+ TAGS = {
393
+ 'Canon Image Type' => ['TAG_CANON_IMAGE_TYPE', :get_string],
394
+ 'Canon Firmware Version' => ['TAG_CANON_FIRMWARE_VERSION', :get_string],
395
+ 'Canon Image Number' => ['TAG_CANON_IMAGE_NUMBER', :get_string],
396
+ 'Canon Owner Name' => ['TAG_CANON_OWNER_NAME', :get_string],
397
+ 'Canon Serial Number' => ['TAG_CANON_SERIAL_NUMBER', :get_string],
398
+ 'Camera Info Array' => ['TAG_CAMERA_INFO_ARRAY', :get_string],
399
+ 'Canon File Length' => ['TAG_CANON_FILE_LENGTH', :get_string],
400
+ 'Canon Custom Functions Array' => ['TAG_CANON_CUSTOM_FUNCTIONS_ARRAY', :get_string],
401
+ 'Model Id' => ['TAG_MODEL_ID', :get_string],
402
+ 'Movie Info Array' => ['TAG_MOVIE_INFO_ARRAY', :get_string],
403
+ 'Thumbnail Image Valid Area' => ['TAG_THUMBNAIL_IMAGE_VALID_AREA', :get_string],
404
+ 'Serial Number Format' => ['TAG_SERIAL_NUMBER_FORMAT', :get_string],
405
+ 'Super Macro' => ['TAG_SUPER_MACRO', :get_string],
406
+ 'Date Stamp Mode' => ['TAG_DATE_STAMP_MODE', :get_string],
407
+ 'My Colors' => ['TAG_MY_COLORS', :get_string],
408
+ 'Firmware Revision' => ['TAG_FIRMWARE_REVISION', :get_string],
409
+ 'Categories' => ['TAG_CATEGORIES', :get_string],
410
+ 'Face Detect Array 1' => ['TAG_FACE_DETECT_ARRAY_1', :get_string],
411
+ 'Face Detect Array 2' => ['TAG_FACE_DETECT_ARRAY_2', :get_string],
412
+ 'Af Info Array 2' => ['TAG_AF_INFO_ARRAY_2', :get_string],
413
+ 'Image Unique Id' => ['TAG_IMAGE_UNIQUE_ID', :get_string],
414
+ 'Raw Data Offset' => ['TAG_RAW_DATA_OFFSET', :get_string],
415
+ 'Original Decision Data Offset' => ['TAG_ORIGINAL_DECISION_DATA_OFFSET', :get_string],
416
+ 'Custom Functions 1d Array' => ['TAG_CUSTOM_FUNCTIONS_1D_ARRAY', :get_string],
417
+ 'Personal Functions Array' => ['TAG_PERSONAL_FUNCTIONS_ARRAY', :get_string],
418
+ 'Personal Function Values Array' => ['TAG_PERSONAL_FUNCTION_VALUES_ARRAY', :get_string],
419
+ 'File Info Array' => ['TAG_FILE_INFO_ARRAY', :get_string],
420
+ 'Af Points In Focus 1d' => ['TAG_AF_POINTS_IN_FOCUS_1D', :get_string],
421
+ 'Lens Model' => ['TAG_LENS_MODEL', :get_string],
422
+ 'Serial Info Array' => ['TAG_SERIAL_INFO_ARRAY', :get_string],
423
+ 'Dust Removal Data' => ['TAG_DUST_REMOVAL_DATA', :get_string],
424
+ 'Crop Info' => ['TAG_CROP_INFO', :get_string],
425
+ 'Custom Functions Array 2' => ['TAG_CUSTOM_FUNCTIONS_ARRAY_2', :get_string],
426
+ 'Aspect Info Array' => ['TAG_ASPECT_INFO_ARRAY', :get_string],
427
+ 'Processing Info Array' => ['TAG_PROCESSING_INFO_ARRAY', :get_string],
428
+ 'Tone Curve Table' => ['TAG_TONE_CURVE_TABLE', :get_string],
429
+ 'Sharpness Table' => ['TAG_SHARPNESS_TABLE', :get_string],
430
+ 'Sharpness Freq Table' => ['TAG_SHARPNESS_FREQ_TABLE', :get_string],
431
+ 'White Balance Table' => ['TAG_WHITE_BALANCE_TABLE', :get_string],
432
+ 'Color Balance Array' => ['TAG_COLOR_BALANCE_ARRAY', :get_string],
433
+ 'Measured Color Array' => ['TAG_MEASURED_COLOR_ARRAY', :get_string],
434
+ 'Color Temperature' => ['TAG_COLOR_TEMPERATURE', :get_string],
435
+ 'Canon Flags Array' => ['TAG_CANON_FLAGS_ARRAY', :get_string],
436
+ 'Modified Info Array' => ['TAG_MODIFIED_INFO_ARRAY', :get_string],
437
+ 'Tone Curve Matching' => ['TAG_TONE_CURVE_MATCHING', :get_string],
438
+ 'White Balance Matching' => ['TAG_WHITE_BALANCE_MATCHING', :get_string],
439
+ 'Color Space' => ['TAG_COLOR_SPACE', :get_string],
440
+ 'Preview Image Info Array' => ['TAG_PREVIEW_IMAGE_INFO_ARRAY', :get_string],
441
+ 'Vrd Offset' => ['TAG_VRD_OFFSET', :get_string],
442
+ 'Sensor Info Array' => ['TAG_SENSOR_INFO_ARRAY', :get_string],
443
+ 'Color Data Array 2' => ['TAG_COLOR_DATA_ARRAY_2', :get_string],
444
+ 'Crw Param' => ['TAG_CRW_PARAM', :get_string],
445
+ 'Color Info Array 2' => ['TAG_COLOR_INFO_ARRAY_2', :get_string],
446
+ 'Black Level' => ['TAG_BLACK_LEVEL', :get_string],
447
+ 'Custom Picture Style File Name' => ['TAG_CUSTOM_PICTURE_STYLE_FILE_NAME', :get_string],
448
+ 'Color Info Array' => ['TAG_COLOR_INFO_ARRAY', :get_string],
449
+ 'Vignetting Correction Array 1' => ['TAG_VIGNETTING_CORRECTION_ARRAY_1', :get_string],
450
+ 'Vignetting Correction Array 2' => ['TAG_VIGNETTING_CORRECTION_ARRAY_2', :get_string],
451
+ 'Lighting Optimizer Array' => ['TAG_LIGHTING_OPTIMIZER_ARRAY', :get_string],
452
+ 'Lens Info Array' => ['TAG_LENS_INFO_ARRAY', :get_string],
453
+ 'Ambiance Info Array' => ['TAG_AMBIANCE_INFO_ARRAY', :get_string],
454
+ 'Filter Info Array' => ['TAG_FILTER_INFO_ARRAY', :get_string],
455
+ 'Macro Mode' => ['TAG_MACRO_MODE', :get_string],
456
+ 'Self Timer Delay' => ['TAG_SELF_TIMER_DELAY', :get_string],
457
+ 'Quality' => ['TAG_QUALITY', :get_string],
458
+ 'Flash Mode' => ['TAG_FLASH_MODE', :get_string],
459
+ 'Continuous Drive Mode' => ['TAG_CONTINUOUS_DRIVE_MODE', :get_string],
460
+ 'Unknown 2' => ['TAG_UNKNOWN_2', :get_string],
461
+ 'Focus Mode 1' => ['TAG_FOCUS_MODE_1', :get_string],
462
+ 'Unknown 3' => ['TAG_UNKNOWN_3', :get_string],
463
+ 'Unknown 4' => ['TAG_UNKNOWN_4', :get_string],
464
+ 'Image Size' => ['TAG_IMAGE_SIZE', :get_string],
465
+ 'Easy Shooting Mode' => ['TAG_EASY_SHOOTING_MODE', :get_string],
466
+ 'Digital Zoom' => ['TAG_DIGITAL_ZOOM', :get_string],
467
+ 'Contrast' => ['TAG_CONTRAST', :get_string],
468
+ 'Saturation' => ['TAG_SATURATION', :get_string],
469
+ 'Sharpness' => ['TAG_SHARPNESS', :get_string],
470
+ 'Iso' => ['TAG_ISO', :get_int_array],
471
+ 'Metering Mode' => ['TAG_METERING_MODE', :get_string],
472
+ 'Focus Type' => ['TAG_FOCUS_TYPE', :get_string],
473
+ 'Af Point Selected' => ['TAG_AF_POINT_SELECTED', :get_string],
474
+ 'Exposure Mode' => ['TAG_EXPOSURE_MODE', :get_string],
475
+ 'Unknown 7' => ['TAG_UNKNOWN_7', :get_string],
476
+ 'Unknown 8' => ['TAG_UNKNOWN_8', :get_string],
477
+ 'Long Focal Length' => ['TAG_LONG_FOCAL_LENGTH', :get_string],
478
+ 'Short Focal Length' => ['TAG_SHORT_FOCAL_LENGTH', :get_string],
479
+ 'Focal Units Per Mm' => ['TAG_FOCAL_UNITS_PER_MM', :get_string],
480
+ 'Unknown 9' => ['TAG_UNKNOWN_9', :get_string],
481
+ 'Unknown 10' => ['TAG_UNKNOWN_10', :get_string],
482
+ 'Flash Activity' => ['TAG_FLASH_ACTIVITY', :get_string],
483
+ 'Flash Details' => ['TAG_FLASH_DETAILS', :get_string],
484
+ 'Unknown 12' => ['TAG_UNKNOWN_12', :get_string],
485
+ 'Unknown 13' => ['TAG_UNKNOWN_13', :get_string],
486
+ 'Focus Mode 2' => ['TAG_FOCUS_MODE_2', :get_string],
487
+ 'White Balance' => ['TAG_WHITE_BALANCE', :get_string],
488
+ 'Sequence Number' => ['TAG_SEQUENCE_NUMBER', :get_string],
489
+ 'Af Point Used' => ['TAG_AF_POINT_USED', :get_string],
490
+ 'Flash Bias' => ['TAG_FLASH_BIAS', :get_string],
491
+ 'Auto Exposure Bracketing' => ['TAG_AUTO_EXPOSURE_BRACKETING', :get_string],
492
+ 'Aeb Bracket Value' => ['TAG_AEB_BRACKET_VALUE', :get_string],
493
+ 'Subject Distance' => ['TAG_SUBJECT_DISTANCE', :get_string],
494
+ 'Auto Iso' => ['TAG_AUTO_ISO', :get_string],
495
+ 'Base Iso' => ['TAG_BASE_ISO', :get_string],
496
+ 'Measured Ev' => ['TAG_MEASURED_EV', :get_string],
497
+ 'Target Aperture' => ['TAG_TARGET_APERTURE', :get_string],
498
+ 'Target Exposure Time' => ['TAG_TARGET_EXPOSURE_TIME', :get_string],
499
+ 'Exposure Compensation' => ['TAG_EXPOSURE_COMPENSATION', :get_string],
500
+ 'Slow Shutter' => ['TAG_SLOW_SHUTTER', :get_string],
501
+ 'Optical Zoom Code' => ['TAG_OPTICAL_ZOOM_CODE', :get_string],
502
+ 'Camera Temperature' => ['TAG_CAMERA_TEMPERATURE', :get_string],
503
+ 'Flash Guide Number' => ['TAG_FLASH_GUIDE_NUMBER', :get_string],
504
+ 'Af Points In Focus' => ['TAG_AF_POINTS_IN_FOCUS', :get_string],
505
+ 'Flash Exposure Bracketing' => ['TAG_FLASH_EXPOSURE_BRACKETING', :get_string],
506
+ 'Control Mode' => ['TAG_CONTROL_MODE', :get_string],
507
+ 'Focus Distance Upper' => ['TAG_FOCUS_DISTANCE_UPPER', :get_string],
508
+ 'Focus Distance Lower' => ['TAG_FOCUS_DISTANCE_LOWER', :get_string],
509
+ 'F Number' => ['TAG_F_NUMBER', :get_string],
510
+ 'Exposure Time' => ['TAG_EXPOSURE_TIME', :get_string],
511
+ 'Measured Ev 2' => ['TAG_MEASURED_EV_2', :get_string],
512
+ 'Bulb Duration' => ['TAG_BULB_DURATION', :get_string],
513
+ 'Camera Type' => ['TAG_CAMERA_TYPE', :get_string],
514
+ 'Auto Rotate' => ['TAG_AUTO_ROTATE', :get_string],
515
+ 'Nd Filter' => ['TAG_ND_FILTER', :get_string],
516
+ 'Self Timer 2' => ['TAG_SELF_TIMER_2', :get_string],
517
+ 'Flash Output' => ['TAG_FLASH_OUTPUT', :get_string],
518
+ 'Panorama Frame Number' => ['TAG_PANORAMA_FRAME_NUMBER', :get_string],
519
+ 'Panorama Direction' => ['TAG_PANORAMA_DIRECTION', :get_string],
520
+ 'Num Af Points' => ['TAG_NUM_AF_POINTS', :get_string],
521
+ 'Valid Af Points' => ['TAG_VALID_AF_POINTS', :get_string],
522
+ 'Image Width' => ['TAG_IMAGE_WIDTH', :get_long],
523
+ 'Image Height' => ['TAG_IMAGE_HEIGHT', :get_long],
524
+ 'Af Image Width' => ['TAG_AF_IMAGE_WIDTH', :get_long],
525
+ 'Af Image Height' => ['TAG_AF_IMAGE_HEIGHT', :get_long],
526
+ 'Af Area Width' => ['TAG_AF_AREA_WIDTH', :get_string],
527
+ 'Af Area Height' => ['TAG_AF_AREA_HEIGHT', :get_string],
528
+ 'Af Area X Positions' => ['TAG_AF_AREA_X_POSITIONS', :get_string],
529
+ 'Af Area Y Positions' => ['TAG_AF_AREA_Y_POSITIONS', :get_string],
530
+ 'Primary Af Point 1' => ['TAG_PRIMARY_AF_POINT_1', :get_string],
531
+ 'Primary Af Point 2' => ['TAG_PRIMARY_AF_POINT_2', :get_string],
532
+ 'Canon Custom Function Long Exposure Noise Reduction' => ['TAG_CANON_CUSTOM_FUNCTION_LONG_EXPOSURE_NOISE_REDUCTION', :get_string],
533
+ 'Canon Custom Function Shutter Auto Exposure Lock Buttons' => ['TAG_CANON_CUSTOM_FUNCTION_SHUTTER_AUTO_EXPOSURE_LOCK_BUTTONS', :get_string],
534
+ 'Canon Custom Function Mirror Lockup' => ['TAG_CANON_CUSTOM_FUNCTION_MIRROR_LOCKUP', :get_string],
535
+ 'Canon Custom Function Tv Av And Exposure Level' => ['TAG_CANON_CUSTOM_FUNCTION_TV_AV_AND_EXPOSURE_LEVEL', :get_string],
536
+ 'Canon Custom Function Af Assist Light' => ['TAG_CANON_CUSTOM_FUNCTION_AF_ASSIST_LIGHT', :get_string],
537
+ 'Canon Custom Function Shutter Speed In Av Mode' => ['TAG_CANON_CUSTOM_FUNCTION_SHUTTER_SPEED_IN_AV_MODE', :get_string],
538
+ 'Canon Custom Function Bracketing' => ['TAG_CANON_CUSTOM_FUNCTION_BRACKETING', :get_string],
539
+ 'Canon Custom Function Shutter Curtain Sync' => ['TAG_CANON_CUSTOM_FUNCTION_SHUTTER_CURTAIN_SYNC', :get_string],
540
+ 'Canon Custom Function Af Stop' => ['TAG_CANON_CUSTOM_FUNCTION_AF_STOP', :get_string],
541
+ 'Canon Custom Function Fill Flash Reduction' => ['TAG_CANON_CUSTOM_FUNCTION_FILL_FLASH_REDUCTION', :get_string],
542
+ 'Canon Custom Function Menu Button Return' => ['TAG_CANON_CUSTOM_FUNCTION_MENU_BUTTON_RETURN', :get_string],
543
+ 'Canon Custom Function Set Button Function' => ['TAG_CANON_CUSTOM_FUNCTION_SET_BUTTON_FUNCTION', :get_string],
544
+ 'Canon Custom Function Sensor Cleaning' => ['TAG_CANON_CUSTOM_FUNCTION_SENSOR_CLEANING', :get_string]
545
+ }.freeze
546
+ end
547
+
548
+ # GENERATED
549
+ class CasioType1MakernoteDirectory < Directory
550
+ java_import com.drew.metadata.exif.makernotes.CasioType1MakernoteDirectory
551
+
552
+ def self.directory_class
553
+ com.drew.metadata.exif.makernotes.CasioType1MakernoteDirectory
554
+ end
555
+
556
+ TAGS = {
557
+ 'Recording Mode' => ['TAG_RECORDING_MODE', :get_string],
558
+ 'Quality' => ['TAG_QUALITY', :get_string],
559
+ 'Focusing Mode' => ['TAG_FOCUSING_MODE', :get_string],
560
+ 'Flash Mode' => ['TAG_FLASH_MODE', :get_string],
561
+ 'Flash Intensity' => ['TAG_FLASH_INTENSITY', :get_string],
562
+ 'Object Distance' => ['TAG_OBJECT_DISTANCE', :get_string],
563
+ 'White Balance' => ['TAG_WHITE_BALANCE', :get_string],
564
+ 'Unknown 1' => ['TAG_UNKNOWN_1', :get_string],
565
+ 'Unknown 2' => ['TAG_UNKNOWN_2', :get_string],
566
+ 'Digital Zoom' => ['TAG_DIGITAL_ZOOM', :get_string],
567
+ 'Sharpness' => ['TAG_SHARPNESS', :get_string],
568
+ 'Contrast' => ['TAG_CONTRAST', :get_string],
569
+ 'Saturation' => ['TAG_SATURATION', :get_string],
570
+ 'Unknown 3' => ['TAG_UNKNOWN_3', :get_string],
571
+ 'Unknown 4' => ['TAG_UNKNOWN_4', :get_string],
572
+ 'Unknown 5' => ['TAG_UNKNOWN_5', :get_string],
573
+ 'Unknown 6' => ['TAG_UNKNOWN_6', :get_string],
574
+ 'Unknown 7' => ['TAG_UNKNOWN_7', :get_string],
575
+ 'Unknown 8' => ['TAG_UNKNOWN_8', :get_string],
576
+ 'Ccd Sensitivity' => ['TAG_CCD_SENSITIVITY', :get_string]
577
+ }.freeze
578
+ end
579
+
580
+ # GENERATED
581
+ class CasioType2MakernoteDirectory < Directory
582
+ java_import com.drew.metadata.exif.makernotes.CasioType2MakernoteDirectory
583
+
584
+ def self.directory_class
585
+ com.drew.metadata.exif.makernotes.CasioType2MakernoteDirectory
586
+ end
587
+
588
+ TAGS = {
589
+ 'Thumbnail Dimensions' => ['TAG_THUMBNAIL_DIMENSIONS', :get_string],
590
+ 'Thumbnail Size' => ['TAG_THUMBNAIL_SIZE', :get_long],
591
+ 'Thumbnail Offset' => ['TAG_THUMBNAIL_OFFSET', :get_long],
592
+ 'Quality Mode' => ['TAG_QUALITY_MODE', :get_string],
593
+ 'Image Size' => ['TAG_IMAGE_SIZE', :get_string],
594
+ 'Focus Mode 1' => ['TAG_FOCUS_MODE_1', :get_string],
595
+ 'Iso Sensitivity' => ['TAG_ISO_SENSITIVITY', :get_int],
596
+ 'White Balance 1' => ['TAG_WHITE_BALANCE_1', :get_string],
597
+ 'Focal Length' => ['TAG_FOCAL_LENGTH', :get_string],
598
+ 'Saturation' => ['TAG_SATURATION', :get_string],
599
+ 'Contrast' => ['TAG_CONTRAST', :get_string],
600
+ 'Sharpness' => ['TAG_SHARPNESS', :get_string],
601
+ 'Print Image Matching Info' => ['TAG_PRINT_IMAGE_MATCHING_INFO', :get_string],
602
+ 'Preview Thumbnail' => ['TAG_PREVIEW_THUMBNAIL', :get_string],
603
+ 'White Balance Bias' => ['TAG_WHITE_BALANCE_BIAS', :get_string],
604
+ 'White Balance 2' => ['TAG_WHITE_BALANCE_2', :get_string],
605
+ 'Object Distance' => ['TAG_OBJECT_DISTANCE', :get_string],
606
+ 'Flash Distance' => ['TAG_FLASH_DISTANCE', :get_string],
607
+ 'Record Mode' => ['TAG_RECORD_MODE', :get_string],
608
+ 'Self Timer' => ['TAG_SELF_TIMER', :get_string],
609
+ 'Quality' => ['TAG_QUALITY', :get_string],
610
+ 'Focus Mode 2' => ['TAG_FOCUS_MODE_2', :get_string],
611
+ 'Time Zone' => ['TAG_TIME_ZONE', :get_string],
612
+ 'Bestshot Mode' => ['TAG_BESTSHOT_MODE', :get_string],
613
+ 'Ccd Iso Sensitivity' => ['TAG_CCD_ISO_SENSITIVITY', :get_int],
614
+ 'Colour Mode' => ['TAG_COLOUR_MODE', :get_string],
615
+ 'Enhancement' => ['TAG_ENHANCEMENT', :get_string],
616
+ 'Filter' => ['TAG_FILTER', :get_string]
617
+ }.freeze
618
+ end
619
+
620
+ # GENERATED
621
+ class FujifilmMakernoteDirectory < Directory
622
+ java_import com.drew.metadata.exif.makernotes.FujifilmMakernoteDirectory
623
+
624
+ def self.directory_class
625
+ com.drew.metadata.exif.makernotes.FujifilmMakernoteDirectory
626
+ end
627
+
628
+ TAGS = {
629
+ 'Makernote Version' => ['TAG_MAKERNOTE_VERSION', :get_string],
630
+ 'Serial Number' => ['TAG_SERIAL_NUMBER', :get_string],
631
+ 'Quality' => ['TAG_QUALITY', :get_string],
632
+ 'Sharpness' => ['TAG_SHARPNESS', :get_string],
633
+ 'White Balance' => ['TAG_WHITE_BALANCE', :get_string],
634
+ 'Color Saturation' => ['TAG_COLOR_SATURATION', :get_string],
635
+ 'Tone' => ['TAG_TONE', :get_string],
636
+ 'Color Temperature' => ['TAG_COLOR_TEMPERATURE', :get_string],
637
+ 'Contrast' => ['TAG_CONTRAST', :get_string],
638
+ 'White Balance Fine Tune' => ['TAG_WHITE_BALANCE_FINE_TUNE', :get_string],
639
+ 'Noise Reduction' => ['TAG_NOISE_REDUCTION', :get_string],
640
+ 'High Iso Noise Reduction' => ['TAG_HIGH_ISO_NOISE_REDUCTION', :get_string],
641
+ 'Flash Mode' => ['TAG_FLASH_MODE', :get_string],
642
+ 'Flash Ev' => ['TAG_FLASH_EV', :get_string],
643
+ 'Macro' => ['TAG_MACRO', :get_string],
644
+ 'Focus Mode' => ['TAG_FOCUS_MODE', :get_string],
645
+ 'Focus Pixel' => ['TAG_FOCUS_PIXEL', :get_string],
646
+ 'Slow Sync' => ['TAG_SLOW_SYNC', :get_string],
647
+ 'Picture Mode' => ['TAG_PICTURE_MODE', :get_string],
648
+ 'Exr Auto' => ['TAG_EXR_AUTO', :get_string],
649
+ 'Exr Mode' => ['TAG_EXR_MODE', :get_string],
650
+ 'Auto Bracketing' => ['TAG_AUTO_BRACKETING', :get_string],
651
+ 'Sequence Number' => ['TAG_SEQUENCE_NUMBER', :get_string],
652
+ 'Fine Pix Color' => ['TAG_FINE_PIX_COLOR', :get_string],
653
+ 'Blur Warning' => ['TAG_BLUR_WARNING', :get_string],
654
+ 'Focus Warning' => ['TAG_FOCUS_WARNING', :get_string],
655
+ 'Auto Exposure Warning' => ['TAG_AUTO_EXPOSURE_WARNING', :get_string],
656
+ 'Ge Image Size' => ['TAG_GE_IMAGE_SIZE', :get_string],
657
+ 'Dynamic Range' => ['TAG_DYNAMIC_RANGE', :get_string],
658
+ 'Film Mode' => ['TAG_FILM_MODE', :get_string],
659
+ 'Dynamic Range Setting' => ['TAG_DYNAMIC_RANGE_SETTING', :get_string],
660
+ 'Development Dynamic Range' => ['TAG_DEVELOPMENT_DYNAMIC_RANGE', :get_string],
661
+ 'Min Focal Length' => ['TAG_MIN_FOCAL_LENGTH', :get_string],
662
+ 'Max Focal Length' => ['TAG_MAX_FOCAL_LENGTH', :get_string],
663
+ 'Max Aperture At Min Focal' => ['TAG_MAX_APERTURE_AT_MIN_FOCAL', :get_string],
664
+ 'Max Aperture At Max Focal' => ['TAG_MAX_APERTURE_AT_MAX_FOCAL', :get_string],
665
+ 'Auto Dynamic Range' => ['TAG_AUTO_DYNAMIC_RANGE', :get_string],
666
+ 'Faces Detected' => ['TAG_FACES_DETECTED', :get_string],
667
+ 'Face Positions' => ['TAG_FACE_POSITIONS', :get_string],
668
+ 'Face Rec Info' => ['TAG_FACE_REC_INFO', :get_string],
669
+ 'File Source' => ['TAG_FILE_SOURCE', :get_string],
670
+ 'Order Number' => ['TAG_ORDER_NUMBER', :get_string],
671
+ 'Frame Number' => ['TAG_FRAME_NUMBER', :get_string],
672
+ 'Parallax' => ['TAG_PARALLAX', :get_string]
673
+ }.freeze
674
+ end
675
+
676
+ # GENERATED
677
+ class KyoceraMakernoteDirectory < Directory
678
+ java_import com.drew.metadata.exif.makernotes.KyoceraMakernoteDirectory
679
+
680
+ def self.directory_class
681
+ com.drew.metadata.exif.makernotes.KyoceraMakernoteDirectory
682
+ end
683
+
684
+ TAGS = {
685
+ 'Proprietary Thumbnail' => ['TAG_PROPRIETARY_THUMBNAIL', :get_string],
686
+ 'Print Image Matching Info' => ['TAG_PRINT_IMAGE_MATCHING_INFO', :get_string]
687
+ }.freeze
688
+ end
689
+
690
+ # GENERATED
691
+ class LeicaMakernoteDirectory < Directory
692
+ java_import com.drew.metadata.exif.makernotes.LeicaMakernoteDirectory
693
+
694
+ def self.directory_class
695
+ com.drew.metadata.exif.makernotes.LeicaMakernoteDirectory
696
+ end
697
+
698
+ TAGS = {
699
+ 'Quality' => ['TAG_QUALITY', :get_string],
700
+ 'User Profile' => ['TAG_USER_PROFILE', :get_string],
701
+ 'Serial Number' => ['TAG_SERIAL_NUMBER', :get_string],
702
+ 'White Balance' => ['TAG_WHITE_BALANCE', :get_string],
703
+ 'Lens Type' => ['TAG_LENS_TYPE', :get_string],
704
+ 'External Sensor Brightness Value' => ['TAG_EXTERNAL_SENSOR_BRIGHTNESS_VALUE', :get_string],
705
+ 'Measured Lv' => ['TAG_MEASURED_LV', :get_string],
706
+ 'Approximate F Number' => ['TAG_APPROXIMATE_F_NUMBER', :get_string],
707
+ 'Camera Temperature' => ['TAG_CAMERA_TEMPERATURE', :get_string],
708
+ 'Color Temperature' => ['TAG_COLOR_TEMPERATURE', :get_string],
709
+ 'Wb Red Level' => ['TAG_WB_RED_LEVEL', :get_string],
710
+ 'Wb Green Level' => ['TAG_WB_GREEN_LEVEL', :get_string],
711
+ 'Wb Blue Level' => ['TAG_WB_BLUE_LEVEL', :get_string],
712
+ 'Ccd Version' => ['TAG_CCD_VERSION', :get_string],
713
+ 'Ccd Board Version' => ['TAG_CCD_BOARD_VERSION', :get_string],
714
+ 'Controller Board Version' => ['TAG_CONTROLLER_BOARD_VERSION', :get_string],
715
+ 'M16 C Version' => ['TAG_M16_C_VERSION', :get_string],
716
+ 'Image Id Number' => ['TAG_IMAGE_ID_NUMBER', :get_string]
717
+ }.freeze
718
+ end
719
+
720
+ # GENERATED
721
+ class NikonType1MakernoteDirectory < Directory
722
+ java_import com.drew.metadata.exif.makernotes.NikonType1MakernoteDirectory
723
+
724
+ def self.directory_class
725
+ com.drew.metadata.exif.makernotes.NikonType1MakernoteDirectory
726
+ end
727
+
728
+ TAGS = {
729
+ 'Unknown 1' => ['TAG_UNKNOWN_1', :get_string],
730
+ 'Quality' => ['TAG_QUALITY', :get_string],
731
+ 'Color Mode' => ['TAG_COLOR_MODE', :get_string],
732
+ 'Image Adjustment' => ['TAG_IMAGE_ADJUSTMENT', :get_string],
733
+ 'Ccd Sensitivity' => ['TAG_CCD_SENSITIVITY', :get_int],
734
+ 'White Balance' => ['TAG_WHITE_BALANCE', :get_string],
735
+ 'Focus' => ['TAG_FOCUS', :get_string],
736
+ 'Unknown 2' => ['TAG_UNKNOWN_2', :get_string],
737
+ 'Digital Zoom' => ['TAG_DIGITAL_ZOOM', :get_string],
738
+ 'Converter' => ['TAG_CONVERTER', :get_string],
739
+ 'Unknown 3' => ['TAG_UNKNOWN_3', :get_string]
740
+ }.freeze
741
+ end
742
+
743
+ # GENERATED
744
+ class NikonType2MakernoteDirectory < Directory
745
+ java_import com.drew.metadata.exif.makernotes.NikonType2MakernoteDirectory
746
+
747
+ def self.directory_class
748
+ com.drew.metadata.exif.makernotes.NikonType2MakernoteDirectory
749
+ end
750
+
751
+ TAGS = {
752
+ 'Firmware Version' => ['TAG_FIRMWARE_VERSION', :get_string],
753
+ 'Iso 1' => ['TAG_ISO_1', :get_string],
754
+ 'Color Mode' => ['TAG_COLOR_MODE', :get_string],
755
+ 'Quality And File Format' => ['TAG_QUALITY_AND_FILE_FORMAT', :get_string],
756
+ 'Camera White Balance' => ['TAG_CAMERA_WHITE_BALANCE', :get_string],
757
+ 'Camera Sharpening' => ['TAG_CAMERA_SHARPENING', :get_string],
758
+ 'Af Type' => ['TAG_AF_TYPE', :get_string],
759
+ 'Flash Sync Mode' => ['TAG_FLASH_SYNC_MODE', :get_string],
760
+ 'Auto Flash Mode' => ['TAG_AUTO_FLASH_MODE', :get_string],
761
+ 'Unknown 34' => ['TAG_UNKNOWN_34', :get_string],
762
+ 'Camera White Balance Fine' => ['TAG_CAMERA_WHITE_BALANCE_FINE', :get_string],
763
+ 'Camera White Balance Rb Coeff' => ['TAG_CAMERA_WHITE_BALANCE_RB_COEFF', :get_string],
764
+ 'Program Shift' => ['TAG_PROGRAM_SHIFT', :get_string],
765
+ 'Exposure Difference' => ['TAG_EXPOSURE_DIFFERENCE', :get_string],
766
+ 'Iso Mode' => ['TAG_ISO_MODE', :get_string],
767
+ 'Data Dump' => ['TAG_DATA_DUMP', :get_string],
768
+ 'Preview Ifd' => ['TAG_PREVIEW_IFD', :get_string],
769
+ 'Auto Flash Compensation' => ['TAG_AUTO_FLASH_COMPENSATION', :get_string],
770
+ 'Iso Requested' => ['TAG_ISO_REQUESTED', :get_string],
771
+ 'Image Boundary' => ['TAG_IMAGE_BOUNDARY', :get_string],
772
+ 'Flash Exposure Compensation' => ['TAG_FLASH_EXPOSURE_COMPENSATION', :get_string],
773
+ 'Flash Bracket Compensation' => ['TAG_FLASH_BRACKET_COMPENSATION', :get_string],
774
+ 'Ae Bracket Compensation' => ['TAG_AE_BRACKET_COMPENSATION', :get_string],
775
+ 'Flash Mode' => ['TAG_FLASH_MODE', :get_string],
776
+ 'Crop High Speed' => ['TAG_CROP_HIGH_SPEED', :get_string],
777
+ 'Exposure Tuning' => ['TAG_EXPOSURE_TUNING', :get_string],
778
+ 'Camera Serial Number' => ['TAG_CAMERA_SERIAL_NUMBER', :get_string],
779
+ 'Color Space' => ['TAG_COLOR_SPACE', :get_string],
780
+ 'Vr Info' => ['TAG_VR_INFO', :get_string],
781
+ 'Image Authentication' => ['TAG_IMAGE_AUTHENTICATION', :get_string],
782
+ 'Unknown 35' => ['TAG_UNKNOWN_35', :get_string],
783
+ 'Active D Lighting' => ['TAG_ACTIVE_D_LIGHTING', :get_string],
784
+ 'Picture Control' => ['TAG_PICTURE_CONTROL', :get_string],
785
+ 'World Time' => ['TAG_WORLD_TIME', :get_string],
786
+ 'Iso Info' => ['TAG_ISO_INFO', :get_string],
787
+ 'Unknown 36' => ['TAG_UNKNOWN_36', :get_string],
788
+ 'Unknown 37' => ['TAG_UNKNOWN_37', :get_string],
789
+ 'Unknown 38' => ['TAG_UNKNOWN_38', :get_string],
790
+ 'Unknown 39' => ['TAG_UNKNOWN_39', :get_string],
791
+ 'Vignette Control' => ['TAG_VIGNETTE_CONTROL', :get_string],
792
+ 'Unknown 40' => ['TAG_UNKNOWN_40', :get_string],
793
+ 'Unknown 41' => ['TAG_UNKNOWN_41', :get_string],
794
+ 'Unknown 42' => ['TAG_UNKNOWN_42', :get_string],
795
+ 'Unknown 43' => ['TAG_UNKNOWN_43', :get_string],
796
+ 'Unknown 44' => ['TAG_UNKNOWN_44', :get_string],
797
+ 'Unknown 45' => ['TAG_UNKNOWN_45', :get_string],
798
+ 'Unknown 46' => ['TAG_UNKNOWN_46', :get_string],
799
+ 'Image Adjustment' => ['TAG_IMAGE_ADJUSTMENT', :get_string],
800
+ 'Camera Tone Compensation' => ['TAG_CAMERA_TONE_COMPENSATION', :get_string],
801
+ 'Adapter' => ['TAG_ADAPTER', :get_string],
802
+ 'Lens Type' => ['TAG_LENS_TYPE', :get_string],
803
+ 'Lens' => ['TAG_LENS', :get_string],
804
+ 'Manual Focus Distance' => ['TAG_MANUAL_FOCUS_DISTANCE', :get_string],
805
+ 'Digital Zoom' => ['TAG_DIGITAL_ZOOM', :get_string],
806
+ 'Flash Used' => ['TAG_FLASH_USED', :get_string],
807
+ 'Af Focus Position' => ['TAG_AF_FOCUS_POSITION', :get_string],
808
+ 'Shooting Mode' => ['TAG_SHOOTING_MODE', :get_string],
809
+ 'Unknown 20' => ['TAG_UNKNOWN_20', :get_string],
810
+ 'Lens Stops' => ['TAG_LENS_STOPS', :get_string],
811
+ 'Contrast Curve' => ['TAG_CONTRAST_CURVE', :get_string],
812
+ 'Camera Color Mode' => ['TAG_CAMERA_COLOR_MODE', :get_string],
813
+ 'Unknown 47' => ['TAG_UNKNOWN_47', :get_string],
814
+ 'Scene Mode' => ['TAG_SCENE_MODE', :get_string],
815
+ 'Light Source' => ['TAG_LIGHT_SOURCE', :get_string],
816
+ 'Shot Info' => ['TAG_SHOT_INFO', :get_string],
817
+ 'Camera Hue Adjustment' => ['TAG_CAMERA_HUE_ADJUSTMENT', :get_string],
818
+ 'Nef Compression' => ['TAG_NEF_COMPRESSION', :get_string],
819
+ 'Saturation' => ['TAG_SATURATION', :get_string],
820
+ 'Noise Reduction' => ['TAG_NOISE_REDUCTION', :get_string],
821
+ 'Linearization Table' => ['TAG_LINEARIZATION_TABLE', :get_string],
822
+ 'Color Balance' => ['TAG_COLOR_BALANCE', :get_string],
823
+ 'Lens Data' => ['TAG_LENS_DATA', :get_string],
824
+ 'Nef Thumbnail Size' => ['TAG_NEF_THUMBNAIL_SIZE', :get_long],
825
+ 'Sensor Pixel Size' => ['TAG_SENSOR_PIXEL_SIZE', :get_string],
826
+ 'Unknown 10' => ['TAG_UNKNOWN_10', :get_string],
827
+ 'Scene Assist' => ['TAG_SCENE_ASSIST', :get_string],
828
+ 'Unknown 11' => ['TAG_UNKNOWN_11', :get_string],
829
+ 'Retouch History' => ['TAG_RETOUCH_HISTORY', :get_string],
830
+ 'Unknown 12' => ['TAG_UNKNOWN_12', :get_string],
831
+ 'Camera Serial Number 2' => ['TAG_CAMERA_SERIAL_NUMBER_2', :get_string],
832
+ 'Image Data Size' => ['TAG_IMAGE_DATA_SIZE', :get_string],
833
+ 'Unknown 27' => ['TAG_UNKNOWN_27', :get_string],
834
+ 'Unknown 28' => ['TAG_UNKNOWN_28', :get_string],
835
+ 'Image Count' => ['TAG_IMAGE_COUNT', :get_string],
836
+ 'Deleted Image Count' => ['TAG_DELETED_IMAGE_COUNT', :get_string],
837
+ 'Exposure Sequence Number' => ['TAG_EXPOSURE_SEQUENCE_NUMBER', :get_string],
838
+ 'Flash Info' => ['TAG_FLASH_INFO', :get_string],
839
+ 'Image Optimisation' => ['TAG_IMAGE_OPTIMISATION', :get_string],
840
+ 'Saturation 2' => ['TAG_SATURATION_2', :get_string],
841
+ 'Digital Vari Program' => ['TAG_DIGITAL_VARI_PROGRAM', :get_string],
842
+ 'Image Stabilisation' => ['TAG_IMAGE_STABILISATION', :get_string],
843
+ 'Af Response' => ['TAG_AF_RESPONSE', :get_string],
844
+ 'Unknown 29' => ['TAG_UNKNOWN_29', :get_string],
845
+ 'Unknown 30' => ['TAG_UNKNOWN_30', :get_string],
846
+ 'Multi Exposure' => ['TAG_MULTI_EXPOSURE', :get_string],
847
+ 'High Iso Noise Reduction' => ['TAG_HIGH_ISO_NOISE_REDUCTION', :get_string],
848
+ 'Unknown 31' => ['TAG_UNKNOWN_31', :get_string],
849
+ 'Unknown 32' => ['TAG_UNKNOWN_32', :get_string],
850
+ 'Unknown 33' => ['TAG_UNKNOWN_33', :get_string],
851
+ 'Unknown 48' => ['TAG_UNKNOWN_48', :get_string],
852
+ 'Power Up Time' => ['TAG_POWER_UP_TIME', :get_string],
853
+ 'Af Info 2' => ['TAG_AF_INFO_2', :get_string],
854
+ 'File Info' => ['TAG_FILE_INFO', :get_string],
855
+ 'Af Tune' => ['TAG_AF_TUNE', :get_string],
856
+ 'Unknown 49' => ['TAG_UNKNOWN_49', :get_string],
857
+ 'Unknown 50' => ['TAG_UNKNOWN_50', :get_string],
858
+ 'Unknown 51' => ['TAG_UNKNOWN_51', :get_string],
859
+ 'Print Im' => ['TAG_PRINT_IM', :get_string],
860
+ 'Nikon Capture Data' => ['TAG_NIKON_CAPTURE_DATA', :get_string],
861
+ 'Unknown 52' => ['TAG_UNKNOWN_52', :get_string],
862
+ 'Unknown 53' => ['TAG_UNKNOWN_53', :get_string],
863
+ 'Nikon Capture Version' => ['TAG_NIKON_CAPTURE_VERSION', :get_string],
864
+ 'Nikon Capture Offsets' => ['TAG_NIKON_CAPTURE_OFFSETS', :get_string],
865
+ 'Nikon Scan' => ['TAG_NIKON_SCAN', :get_string],
866
+ 'Unknown 54' => ['TAG_UNKNOWN_54', :get_string],
867
+ 'Nef Bit Depth' => ['TAG_NEF_BIT_DEPTH', :get_string],
868
+ 'Unknown 55' => ['TAG_UNKNOWN_55', :get_string]
869
+ }.freeze
870
+ end
871
+
872
+ # GENERATED
873
+ class OlympusMakernoteDirectory < Directory
874
+ java_import com.drew.metadata.exif.makernotes.OlympusMakernoteDirectory
875
+
876
+ def self.directory_class
877
+ com.drew.metadata.exif.makernotes.OlympusMakernoteDirectory
878
+ end
879
+
880
+ TAGS = {
881
+ 'Makernote Version' => ['TAG_MAKERNOTE_VERSION', :get_string],
882
+ 'Camera Settings 1' => ['TAG_CAMERA_SETTINGS_1', :get_string],
883
+ 'Camera Settings 2' => ['TAG_CAMERA_SETTINGS_2', :get_string],
884
+ 'Compressed Image Size' => ['TAG_COMPRESSED_IMAGE_SIZE', :get_long],
885
+ 'Minolta Thumbnail Offset 1' => ['TAG_MINOLTA_THUMBNAIL_OFFSET_1', :get_long],
886
+ 'Minolta Thumbnail Offset 2' => ['TAG_MINOLTA_THUMBNAIL_OFFSET_2', :get_long],
887
+ 'Minolta Thumbnail Length' => ['TAG_MINOLTA_THUMBNAIL_LENGTH', :get_long],
888
+ 'Colour Mode' => ['TAG_COLOUR_MODE', :get_string],
889
+ 'Image Quality 1' => ['TAG_IMAGE_QUALITY_1', :get_string],
890
+ 'Image Quality 2' => ['TAG_IMAGE_QUALITY_2', :get_string],
891
+ 'Special Mode' => ['TAG_SPECIAL_MODE', :get_string],
892
+ 'Jpeg Quality' => ['TAG_JPEG_QUALITY', :get_string],
893
+ 'Macro Mode' => ['TAG_MACRO_MODE', :get_string],
894
+ 'Bw Mode' => ['TAG_BW_MODE', :get_string],
895
+ 'Digi Zoom Ratio' => ['TAG_DIGI_ZOOM_RATIO', :get_string],
896
+ 'Focal Plane Diagonal' => ['TAG_FOCAL_PLANE_DIAGONAL', :get_string],
897
+ 'Lens Distortion Parameters' => ['TAG_LENS_DISTORTION_PARAMETERS', :get_string],
898
+ 'Firmware Version' => ['TAG_FIRMWARE_VERSION', :get_string],
899
+ 'Pict Info' => ['TAG_PICT_INFO', :get_string],
900
+ 'Camera Id' => ['TAG_CAMERA_ID', :get_string],
901
+ 'Image Width' => ['TAG_IMAGE_WIDTH', :get_long],
902
+ 'Image Height' => ['TAG_IMAGE_HEIGHT', :get_long],
903
+ 'Original Manufacturer Model' => ['TAG_ORIGINAL_MANUFACTURER_MODEL', :get_string],
904
+ 'Print Image Matching Info' => ['TAG_PRINT_IMAGE_MATCHING_INFO', :get_string],
905
+ 'Data Dump' => ['TAG_DATA_DUMP', :get_string],
906
+ 'Shutter Speed Value' => ['TAG_SHUTTER_SPEED_VALUE', :get_string],
907
+ 'Iso Value' => ['TAG_ISO_VALUE', :get_string],
908
+ 'Aperture Value' => ['TAG_APERTURE_VALUE', :get_string],
909
+ 'Brightness Value' => ['TAG_BRIGHTNESS_VALUE', :get_string],
910
+ 'Flash Mode' => ['TAG_FLASH_MODE', :get_string],
911
+ 'Bracket' => ['TAG_BRACKET', :get_string],
912
+ 'Focus Range' => ['TAG_FOCUS_RANGE', :get_string],
913
+ 'Focus Mode' => ['TAG_FOCUS_MODE', :get_string],
914
+ 'Focus Distance' => ['TAG_FOCUS_DISTANCE', :get_string],
915
+ 'Zoom' => ['TAG_ZOOM', :get_string],
916
+ 'Macro Focus' => ['TAG_MACRO_FOCUS', :get_string],
917
+ 'Sharpness' => ['TAG_SHARPNESS', :get_string],
918
+ 'Colour Matrix' => ['TAG_COLOUR_MATRIX', :get_string],
919
+ 'Black Level' => ['TAG_BLACK_LEVEL', :get_string],
920
+ 'White Balance' => ['TAG_WHITE_BALANCE', :get_string],
921
+ 'Red Bias' => ['TAG_RED_BIAS', :get_string],
922
+ 'Blue Bias' => ['TAG_BLUE_BIAS', :get_string],
923
+ 'Serial Number' => ['TAG_SERIAL_NUMBER', :get_string],
924
+ 'Flash Bias' => ['TAG_FLASH_BIAS', :get_string],
925
+ 'Contrast' => ['TAG_CONTRAST', :get_string],
926
+ 'Sharpness Factor' => ['TAG_SHARPNESS_FACTOR', :get_string],
927
+ 'Colour Control' => ['TAG_COLOUR_CONTROL', :get_string],
928
+ 'Valid Bits' => ['TAG_VALID_BITS', :get_string],
929
+ 'Coring Filter' => ['TAG_CORING_FILTER', :get_string],
930
+ 'Final Width' => ['TAG_FINAL_WIDTH', :get_string],
931
+ 'Final Height' => ['TAG_FINAL_HEIGHT', :get_string],
932
+ 'Compression Ratio' => ['TAG_COMPRESSION_RATIO', :get_string],
933
+ 'Exposure Mode' => ['TAG_EXPOSURE_MODE', :get_string],
934
+ 'Image Size' => ['TAG_IMAGE_SIZE', :get_string],
935
+ 'Image Quality' => ['TAG_IMAGE_QUALITY', :get_string],
936
+ 'Shooting Mode' => ['TAG_SHOOTING_MODE', :get_string],
937
+ 'Metering Mode' => ['TAG_METERING_MODE', :get_string],
938
+ 'Apex Film Speed Value' => ['TAG_APEX_FILM_SPEED_VALUE', :get_string],
939
+ 'Apex Shutter Speed Time Value' => ['TAG_APEX_SHUTTER_SPEED_TIME_VALUE', :get_string],
940
+ 'Apex Aperture Value' => ['TAG_APEX_APERTURE_VALUE', :get_string],
941
+ 'Digital Zoom' => ['TAG_DIGITAL_ZOOM', :get_string],
942
+ 'Exposure Compensation' => ['TAG_EXPOSURE_COMPENSATION', :get_string],
943
+ 'Bracket Step' => ['TAG_BRACKET_STEP', :get_string],
944
+ 'Interval Length' => ['TAG_INTERVAL_LENGTH', :get_string],
945
+ 'Interval Number' => ['TAG_INTERVAL_NUMBER', :get_string],
946
+ 'Focal Length' => ['TAG_FOCAL_LENGTH', :get_string],
947
+ 'Flash Fired' => ['TAG_FLASH_FIRED', :get_string],
948
+ 'Date' => ['TAG_DATE', :get_string],
949
+ 'Time' => ['TAG_TIME', :get_string],
950
+ 'Max Aperture At Focal Length' => ['TAG_MAX_APERTURE_AT_FOCAL_LENGTH', :get_string],
951
+ 'File Number Memory' => ['TAG_FILE_NUMBER_MEMORY', :get_string],
952
+ 'Last File Number' => ['TAG_LAST_FILE_NUMBER', :get_string],
953
+ 'White Balance Red' => ['TAG_WHITE_BALANCE_RED', :get_string],
954
+ 'White Balance Green' => ['TAG_WHITE_BALANCE_GREEN', :get_string],
955
+ 'White Balance Blue' => ['TAG_WHITE_BALANCE_BLUE', :get_string],
956
+ 'Saturation' => ['TAG_SATURATION', :get_string],
957
+ 'Subject Program' => ['TAG_SUBJECT_PROGRAM', :get_string],
958
+ 'Flash Compensation' => ['TAG_FLASH_COMPENSATION', :get_string],
959
+ 'Iso Setting' => ['TAG_ISO_SETTING', :get_string],
960
+ 'Camera Model' => ['TAG_CAMERA_MODEL', :get_string],
961
+ 'Interval Mode' => ['TAG_INTERVAL_MODE', :get_string],
962
+ 'Folder Name' => ['TAG_FOLDER_NAME', :get_string],
963
+ 'Color Mode' => ['TAG_COLOR_MODE', :get_string],
964
+ 'Color Filter' => ['TAG_COLOR_FILTER', :get_string],
965
+ 'Black And White Filter' => ['TAG_BLACK_AND_WHITE_FILTER', :get_string],
966
+ 'Internal Flash' => ['TAG_INTERNAL_FLASH', :get_string],
967
+ 'Apex Brightness Value' => ['TAG_APEX_BRIGHTNESS_VALUE', :get_string],
968
+ 'Spot Focus Point X Coordinate' => ['TAG_SPOT_FOCUS_POINT_X_COORDINATE', :get_string],
969
+ 'Spot Focus Point Y Coordinate' => ['TAG_SPOT_FOCUS_POINT_Y_COORDINATE', :get_string],
970
+ 'Wide Focus Zone' => ['TAG_WIDE_FOCUS_ZONE', :get_string],
971
+ 'Focus Area' => ['TAG_FOCUS_AREA', :get_string],
972
+ 'Dec Switch Position' => ['TAG_DEC_SWITCH_POSITION', :get_string]
973
+ }.freeze
974
+ end
975
+
976
+ # GENERATED
977
+ class PanasonicMakernoteDirectory < Directory
978
+ java_import com.drew.metadata.exif.makernotes.PanasonicMakernoteDirectory
979
+
980
+ def self.directory_class
981
+ com.drew.metadata.exif.makernotes.PanasonicMakernoteDirectory
982
+ end
983
+
984
+ TAGS = {
985
+ 'Quality Mode' => ['TAG_QUALITY_MODE', :get_string],
986
+ 'Firmware Version' => ['TAG_FIRMWARE_VERSION', :get_string],
987
+ 'White Balance' => ['TAG_WHITE_BALANCE', :get_string],
988
+ 'Focus Mode' => ['TAG_FOCUS_MODE', :get_string],
989
+ 'Af Area Mode' => ['TAG_AF_AREA_MODE', :get_string],
990
+ 'Image Stabilization' => ['TAG_IMAGE_STABILIZATION', :get_string],
991
+ 'Macro Mode' => ['TAG_MACRO_MODE', :get_string],
992
+ 'Record Mode' => ['TAG_RECORD_MODE', :get_string],
993
+ 'Audio' => ['TAG_AUDIO', :get_string],
994
+ 'Unknown Data Dump' => ['TAG_UNKNOWN_DATA_DUMP', :get_string],
995
+ 'Easy Mode' => ['TAG_EASY_MODE', :get_string],
996
+ 'White Balance Bias' => ['TAG_WHITE_BALANCE_BIAS', :get_string],
997
+ 'Flash Bias' => ['TAG_FLASH_BIAS', :get_string],
998
+ 'Internal Serial Number' => ['TAG_INTERNAL_SERIAL_NUMBER', :get_string],
999
+ 'Exif Version' => ['TAG_EXIF_VERSION', :get_string],
1000
+ 'Color Effect' => ['TAG_COLOR_EFFECT', :get_string],
1001
+ 'Uptime' => ['TAG_UPTIME', :get_string],
1002
+ 'Burst Mode' => ['TAG_BURST_MODE', :get_string],
1003
+ 'Sequence Number' => ['TAG_SEQUENCE_NUMBER', :get_string],
1004
+ 'Contrast Mode' => ['TAG_CONTRAST_MODE', :get_string],
1005
+ 'Noise Reduction' => ['TAG_NOISE_REDUCTION', :get_string],
1006
+ 'Self Timer' => ['TAG_SELF_TIMER', :get_string],
1007
+ 'Rotation' => ['TAG_ROTATION', :get_string],
1008
+ 'Af Assist Lamp' => ['TAG_AF_ASSIST_LAMP', :get_string],
1009
+ 'Color Mode' => ['TAG_COLOR_MODE', :get_string],
1010
+ 'Baby Age' => ['TAG_BABY_AGE', :get_string],
1011
+ 'Optical Zoom Mode' => ['TAG_OPTICAL_ZOOM_MODE', :get_string],
1012
+ 'Conversion Lens' => ['TAG_CONVERSION_LENS', :get_string],
1013
+ 'Travel Day' => ['TAG_TRAVEL_DAY', :get_string],
1014
+ 'Contrast' => ['TAG_CONTRAST', :get_string],
1015
+ 'World Time Location' => ['TAG_WORLD_TIME_LOCATION', :get_string],
1016
+ 'Text Stamp' => ['TAG_TEXT_STAMP', :get_string],
1017
+ 'Program Iso' => ['TAG_PROGRAM_ISO', :get_string],
1018
+ 'Advanced Scene Mode' => ['TAG_ADVANCED_SCENE_MODE', :get_string],
1019
+ 'Text Stamp 1' => ['TAG_TEXT_STAMP_1', :get_string],
1020
+ 'Faces Detected' => ['TAG_FACES_DETECTED', :get_string],
1021
+ 'Saturation' => ['TAG_SATURATION', :get_string],
1022
+ 'Sharpness' => ['TAG_SHARPNESS', :get_string],
1023
+ 'Film Mode' => ['TAG_FILM_MODE', :get_string],
1024
+ 'Wb Adjust Ab' => ['TAG_WB_ADJUST_AB', :get_string],
1025
+ 'Wb Adjust Gm' => ['TAG_WB_ADJUST_GM', :get_string],
1026
+ 'Af Point Position' => ['TAG_AF_POINT_POSITION', :get_string],
1027
+ 'Face Detection Info' => ['TAG_FACE_DETECTION_INFO', :get_string],
1028
+ 'Lens Type' => ['TAG_LENS_TYPE', :get_string],
1029
+ 'Lens Serial Number' => ['TAG_LENS_SERIAL_NUMBER', :get_string],
1030
+ 'Accessory Type' => ['TAG_ACCESSORY_TYPE', :get_string],
1031
+ 'Transform' => ['TAG_TRANSFORM', :get_string],
1032
+ 'Intelligent Exposure' => ['TAG_INTELLIGENT_EXPOSURE', :get_string],
1033
+ 'Print Image Matching Info' => ['TAG_PRINT_IMAGE_MATCHING_INFO', :get_string],
1034
+ 'Face Recognition Info' => ['TAG_FACE_RECOGNITION_INFO', :get_string],
1035
+ 'Flash Warning' => ['TAG_FLASH_WARNING', :get_string],
1036
+ 'Recognized Face Flags' => ['TAG_RECOGNIZED_FACE_FLAGS', :get_string],
1037
+ 'Title' => ['TAG_TITLE', :get_string],
1038
+ 'Baby Name' => ['TAG_BABY_NAME', :get_string],
1039
+ 'Location' => ['TAG_LOCATION', :get_string],
1040
+ 'Country' => ['TAG_COUNTRY', :get_string],
1041
+ 'State' => ['TAG_STATE', :get_string],
1042
+ 'City' => ['TAG_CITY', :get_string],
1043
+ 'Landmark' => ['TAG_LANDMARK', :get_string],
1044
+ 'Intelligent Resolution' => ['TAG_INTELLIGENT_RESOLUTION', :get_string],
1045
+ 'Makernote Version' => ['TAG_MAKERNOTE_VERSION', :get_string],
1046
+ 'Scene Mode' => ['TAG_SCENE_MODE', :get_string],
1047
+ 'Wb Red Level' => ['TAG_WB_RED_LEVEL', :get_string],
1048
+ 'Wb Green Level' => ['TAG_WB_GREEN_LEVEL', :get_string],
1049
+ 'Wb Blue Level' => ['TAG_WB_BLUE_LEVEL', :get_string],
1050
+ 'Flash Fired' => ['TAG_FLASH_FIRED', :get_string],
1051
+ 'Text Stamp 2' => ['TAG_TEXT_STAMP_2', :get_string],
1052
+ 'Text Stamp 3' => ['TAG_TEXT_STAMP_3', :get_string],
1053
+ 'Baby Age 1' => ['TAG_BABY_AGE_1', :get_string],
1054
+ 'Transform 1' => ['TAG_TRANSFORM_1', :get_string]
1055
+ }.freeze
1056
+ end
1057
+
1058
+ # GENERATED
1059
+ class PentaxMakernoteDirectory < Directory
1060
+ java_import com.drew.metadata.exif.makernotes.PentaxMakernoteDirectory
1061
+
1062
+ def self.directory_class
1063
+ com.drew.metadata.exif.makernotes.PentaxMakernoteDirectory
1064
+ end
1065
+
1066
+ TAGS = {
1067
+ 'Capture Mode' => ['TAG_CAPTURE_MODE', :get_string],
1068
+ 'Quality Level' => ['TAG_QUALITY_LEVEL', :get_string],
1069
+ 'Focus Mode' => ['TAG_FOCUS_MODE', :get_string],
1070
+ 'Flash Mode' => ['TAG_FLASH_MODE', :get_string],
1071
+ 'White Balance' => ['TAG_WHITE_BALANCE', :get_string],
1072
+ 'Digital Zoom' => ['TAG_DIGITAL_ZOOM', :get_string],
1073
+ 'Sharpness' => ['TAG_SHARPNESS', :get_string],
1074
+ 'Contrast' => ['TAG_CONTRAST', :get_string],
1075
+ 'Saturation' => ['TAG_SATURATION', :get_string],
1076
+ 'Iso Speed' => ['TAG_ISO_SPEED', :get_string],
1077
+ 'Colour' => ['TAG_COLOUR', :get_string],
1078
+ 'Print Image Matching Info' => ['TAG_PRINT_IMAGE_MATCHING_INFO', :get_string],
1079
+ 'Time Zone' => ['TAG_TIME_ZONE', :get_string],
1080
+ 'Daylight Savings' => ['TAG_DAYLIGHT_SAVINGS', :get_string]
1081
+ }.freeze
1082
+ end
1083
+
1084
+ # GENERATED
1085
+ class RicohMakernoteDirectory < Directory
1086
+ java_import com.drew.metadata.exif.makernotes.RicohMakernoteDirectory
1087
+
1088
+ def self.directory_class
1089
+ com.drew.metadata.exif.makernotes.RicohMakernoteDirectory
1090
+ end
1091
+
1092
+ TAGS = {
1093
+ 'Makernote Data Type' => ['TAG_MAKERNOTE_DATA_TYPE', :get_string],
1094
+ 'Version' => ['TAG_VERSION', :get_string],
1095
+ 'Print Image Matching Info' => ['TAG_PRINT_IMAGE_MATCHING_INFO', :get_string],
1096
+ 'Ricoh Camera Info Makernote Sub Ifd Pointer' => ['TAG_RICOH_CAMERA_INFO_MAKERNOTE_SUB_IFD_POINTER', :get_string]
1097
+ }.freeze
1098
+ end
1099
+
1100
+ # GENERATED
1101
+ class SanyoMakernoteDirectory < Directory
1102
+ java_import com.drew.metadata.exif.makernotes.SanyoMakernoteDirectory
1103
+
1104
+ def self.directory_class
1105
+ com.drew.metadata.exif.makernotes.SanyoMakernoteDirectory
1106
+ end
1107
+
1108
+ TAGS = {
1109
+ 'Makernote Offset' => ['TAG_MAKERNOTE_OFFSET', :get_string],
1110
+ 'Sanyo Thumbnail' => ['TAG_SANYO_THUMBNAIL', :get_string],
1111
+ 'Special Mode' => ['TAG_SPECIAL_MODE', :get_string],
1112
+ 'Sanyo Quality' => ['TAG_SANYO_QUALITY', :get_string],
1113
+ 'Macro' => ['TAG_MACRO', :get_string],
1114
+ 'Digital Zoom' => ['TAG_DIGITAL_ZOOM', :get_string],
1115
+ 'Software Version' => ['TAG_SOFTWARE_VERSION', :get_string],
1116
+ 'Pict Info' => ['TAG_PICT_INFO', :get_string],
1117
+ 'Camera Id' => ['TAG_CAMERA_ID', :get_string],
1118
+ 'Sequential Shot' => ['TAG_SEQUENTIAL_SHOT', :get_string],
1119
+ 'Wide Range' => ['TAG_WIDE_RANGE', :get_string],
1120
+ 'Color Adjustment Mode' => ['TAG_COLOR_ADJUSTMENT_MODE', :get_string],
1121
+ 'Quick Shot' => ['TAG_QUICK_SHOT', :get_string],
1122
+ 'Self Timer' => ['TAG_SELF_TIMER', :get_string],
1123
+ 'Voice Memo' => ['TAG_VOICE_MEMO', :get_string],
1124
+ 'Record Shutter Release' => ['TAG_RECORD_SHUTTER_RELEASE', :get_string],
1125
+ 'Flicker Reduce' => ['TAG_FLICKER_REDUCE', :get_string],
1126
+ 'Optical Zoom On' => ['TAG_OPTICAL_ZOOM_ON', :get_string],
1127
+ 'Digital Zoom On' => ['TAG_DIGITAL_ZOOM_ON', :get_string],
1128
+ 'Light Source Special' => ['TAG_LIGHT_SOURCE_SPECIAL', :get_string],
1129
+ 'Resaved' => ['TAG_RESAVED', :get_string],
1130
+ 'Scene Select' => ['TAG_SCENE_SELECT', :get_string],
1131
+ 'Manual Focus Distance Or Face Info' => ['TAG_MANUAL_FOCUS_DISTANCE_OR_FACE_INFO', :get_string],
1132
+ 'Sequence Shot Interval' => ['TAG_SEQUENCE_SHOT_INTERVAL', :get_string],
1133
+ 'Flash Mode' => ['TAG_FLASH_MODE', :get_string],
1134
+ 'Print Im' => ['TAG_PRINT_IM', :get_string],
1135
+ 'Data Dump' => ['TAG_DATA_DUMP', :get_string]
1136
+ }.freeze
1137
+ end
1138
+
1139
+ # GENERATED
1140
+ class SigmaMakernoteDirectory < Directory
1141
+ java_import com.drew.metadata.exif.makernotes.SigmaMakernoteDirectory
1142
+
1143
+ def self.directory_class
1144
+ com.drew.metadata.exif.makernotes.SigmaMakernoteDirectory
1145
+ end
1146
+
1147
+ TAGS = {
1148
+ 'Serial Number' => ['TAG_SERIAL_NUMBER', :get_string],
1149
+ 'Drive Mode' => ['TAG_DRIVE_MODE', :get_string],
1150
+ 'Resolution Mode' => ['TAG_RESOLUTION_MODE', :get_string],
1151
+ 'Auto Focus Mode' => ['TAG_AUTO_FOCUS_MODE', :get_string],
1152
+ 'Focus Setting' => ['TAG_FOCUS_SETTING', :get_string],
1153
+ 'White Balance' => ['TAG_WHITE_BALANCE', :get_string],
1154
+ 'Exposure Mode' => ['TAG_EXPOSURE_MODE', :get_string],
1155
+ 'Metering Mode' => ['TAG_METERING_MODE', :get_string],
1156
+ 'Lens Range' => ['TAG_LENS_RANGE', :get_string],
1157
+ 'Color Space' => ['TAG_COLOR_SPACE', :get_string],
1158
+ 'Exposure' => ['TAG_EXPOSURE', :get_string],
1159
+ 'Contrast' => ['TAG_CONTRAST', :get_string],
1160
+ 'Shadow' => ['TAG_SHADOW', :get_string],
1161
+ 'Highlight' => ['TAG_HIGHLIGHT', :get_string],
1162
+ 'Saturation' => ['TAG_SATURATION', :get_string],
1163
+ 'Sharpness' => ['TAG_SHARPNESS', :get_string],
1164
+ 'Fill Light' => ['TAG_FILL_LIGHT', :get_string],
1165
+ 'Color Adjustment' => ['TAG_COLOR_ADJUSTMENT', :get_string],
1166
+ 'Adjustment Mode' => ['TAG_ADJUSTMENT_MODE', :get_string],
1167
+ 'Quality' => ['TAG_QUALITY', :get_string],
1168
+ 'Firmware' => ['TAG_FIRMWARE', :get_string],
1169
+ 'Software' => ['TAG_SOFTWARE', :get_string],
1170
+ 'Auto Bracket' => ['TAG_AUTO_BRACKET', :get_string]
1171
+ }.freeze
1172
+ end
1173
+
1174
+ # GENERATED
1175
+ class SonyType1MakernoteDirectory < Directory
1176
+ java_import com.drew.metadata.exif.makernotes.SonyType1MakernoteDirectory
1177
+
1178
+ def self.directory_class
1179
+ com.drew.metadata.exif.makernotes.SonyType1MakernoteDirectory
1180
+ end
1181
+
1182
+ TAGS = {
1183
+ 'Camera Info' => ['TAG_CAMERA_INFO', :get_string],
1184
+ 'Focus Info' => ['TAG_FOCUS_INFO', :get_string],
1185
+ 'Image Quality' => ['TAG_IMAGE_QUALITY', :get_string],
1186
+ 'Flash Exposure Comp' => ['TAG_FLASH_EXPOSURE_COMP', :get_string],
1187
+ 'Teleconverter' => ['TAG_TELECONVERTER', :get_string],
1188
+ 'White Balance Fine Tune' => ['TAG_WHITE_BALANCE_FINE_TUNE', :get_string],
1189
+ 'Camera Settings' => ['TAG_CAMERA_SETTINGS', :get_string],
1190
+ 'White Balance' => ['TAG_WHITE_BALANCE', :get_string],
1191
+ 'Extra Info' => ['TAG_EXTRA_INFO', :get_string],
1192
+ 'Print Image Matching Info' => ['TAG_PRINT_IMAGE_MATCHING_INFO', :get_string],
1193
+ 'Multi Burst Mode' => ['TAG_MULTI_BURST_MODE', :get_string],
1194
+ 'Multi Burst Image Width' => ['TAG_MULTI_BURST_IMAGE_WIDTH', :get_long],
1195
+ 'Multi Burst Image Height' => ['TAG_MULTI_BURST_IMAGE_HEIGHT', :get_long],
1196
+ 'Panorama' => ['TAG_PANORAMA', :get_string],
1197
+ 'Preview Image' => ['TAG_PREVIEW_IMAGE', :get_string],
1198
+ 'Rating' => ['TAG_RATING', :get_string],
1199
+ 'Contrast' => ['TAG_CONTRAST', :get_string],
1200
+ 'Saturation' => ['TAG_SATURATION', :get_string],
1201
+ 'Sharpness' => ['TAG_SHARPNESS', :get_string],
1202
+ 'Brightness' => ['TAG_BRIGHTNESS', :get_string],
1203
+ 'Long Exposure Noise Reduction' => ['TAG_LONG_EXPOSURE_NOISE_REDUCTION', :get_string],
1204
+ 'High Iso Noise Reduction' => ['TAG_HIGH_ISO_NOISE_REDUCTION', :get_string],
1205
+ 'Hdr' => ['TAG_HDR', :get_string],
1206
+ 'Multi Frame Noise Reduction' => ['TAG_MULTI_FRAME_NOISE_REDUCTION', :get_string],
1207
+ 'Picture Effect' => ['TAG_PICTURE_EFFECT', :get_string],
1208
+ 'Soft Skin Effect' => ['TAG_SOFT_SKIN_EFFECT', :get_string],
1209
+ 'Vignetting Correction' => ['TAG_VIGNETTING_CORRECTION', :get_string],
1210
+ 'Lateral Chromatic Aberration' => ['TAG_LATERAL_CHROMATIC_ABERRATION', :get_string],
1211
+ 'Distortion Correction' => ['TAG_DISTORTION_CORRECTION', :get_string],
1212
+ 'Wb Shift Amber Magenta' => ['TAG_WB_SHIFT_AMBER_MAGENTA', :get_string],
1213
+ 'Auto Portrait Framed' => ['TAG_AUTO_PORTRAIT_FRAMED', :get_string],
1214
+ 'Focus Mode' => ['TAG_FOCUS_MODE', :get_string],
1215
+ 'Af Point Selected' => ['TAG_AF_POINT_SELECTED', :get_string],
1216
+ 'Shot Info' => ['TAG_SHOT_INFO', :get_string],
1217
+ 'File Format' => ['TAG_FILE_FORMAT', :get_string],
1218
+ 'Sony Model Id' => ['TAG_SONY_MODEL_ID', :get_string],
1219
+ 'Color Mode Setting' => ['TAG_COLOR_MODE_SETTING', :get_string],
1220
+ 'Color Temperature' => ['TAG_COLOR_TEMPERATURE', :get_string],
1221
+ 'Color Compensation Filter' => ['TAG_COLOR_COMPENSATION_FILTER', :get_string],
1222
+ 'Scene Mode' => ['TAG_SCENE_MODE', :get_string],
1223
+ 'Zone Matching' => ['TAG_ZONE_MATCHING', :get_string],
1224
+ 'Dynamic Range Optimiser' => ['TAG_DYNAMIC_RANGE_OPTIMISER', :get_string],
1225
+ 'Image Stabilisation' => ['TAG_IMAGE_STABILISATION', :get_string],
1226
+ 'Lens Id' => ['TAG_LENS_ID', :get_string],
1227
+ 'Minolta Makernote' => ['TAG_MINOLTA_MAKERNOTE', :get_string],
1228
+ 'Color Mode' => ['TAG_COLOR_MODE', :get_string],
1229
+ 'Lens Spec' => ['TAG_LENS_SPEC', :get_string],
1230
+ 'Full Image Size' => ['TAG_FULL_IMAGE_SIZE', :get_string],
1231
+ 'Preview Image Size' => ['TAG_PREVIEW_IMAGE_SIZE', :get_string],
1232
+ 'Macro' => ['TAG_MACRO', :get_string],
1233
+ 'Exposure Mode' => ['TAG_EXPOSURE_MODE', :get_string],
1234
+ 'Focus Mode 2' => ['TAG_FOCUS_MODE_2', :get_string],
1235
+ 'Af Mode' => ['TAG_AF_MODE', :get_string],
1236
+ 'Af Illuminator' => ['TAG_AF_ILLUMINATOR', :get_string],
1237
+ 'Jpeg Quality' => ['TAG_JPEG_QUALITY', :get_string],
1238
+ 'Flash Level' => ['TAG_FLASH_LEVEL', :get_string],
1239
+ 'Release Mode' => ['TAG_RELEASE_MODE', :get_string],
1240
+ 'Sequence Number' => ['TAG_SEQUENCE_NUMBER', :get_string],
1241
+ 'Anti Blur' => ['TAG_ANTI_BLUR', :get_string],
1242
+ 'Long Exposure Noise Reduction Or Focus Mode' => ['TAG_LONG_EXPOSURE_NOISE_REDUCTION_OR_FOCUS_MODE', :get_string],
1243
+ 'Dynamic Range Optimizer' => ['TAG_DYNAMIC_RANGE_OPTIMIZER', :get_string],
1244
+ 'High Iso Noise Reduction 2' => ['TAG_HIGH_ISO_NOISE_REDUCTION_2', :get_string],
1245
+ 'Intelligent Auto' => ['TAG_INTELLIGENT_AUTO', :get_string],
1246
+ 'White Balance 2' => ['TAG_WHITE_BALANCE_2', :get_string],
1247
+ 'No Print' => ['TAG_NO_PRINT', :get_string]
1248
+ }.freeze
1249
+ end
1250
+
1251
+ # GENERATED
1252
+ class SonyType6MakernoteDirectory < Directory
1253
+ java_import com.drew.metadata.exif.makernotes.SonyType6MakernoteDirectory
1254
+
1255
+ def self.directory_class
1256
+ com.drew.metadata.exif.makernotes.SonyType6MakernoteDirectory
1257
+ end
1258
+
1259
+ TAGS = {
1260
+ 'Makernote Thumb Offset' => ['TAG_MAKERNOTE_THUMB_OFFSET', :get_string],
1261
+ 'Makernote Thumb Length' => ['TAG_MAKERNOTE_THUMB_LENGTH', :get_string],
1262
+ 'Unknown 1' => ['TAG_UNKNOWN_1', :get_string],
1263
+ 'Makernote Thumb Version' => ['TAG_MAKERNOTE_THUMB_VERSION', :get_string]
1264
+ }.freeze
1265
+ end
1266
+
1267
+ # GENERATED
1268
+ class GifHeaderDirectory < Directory
1269
+ java_import com.drew.metadata.gif.GifHeaderDirectory
1270
+
1271
+ def self.directory_class
1272
+ com.drew.metadata.gif.GifHeaderDirectory
1273
+ end
1274
+
1275
+ TAGS = {
1276
+ 'Gif Format Version' => ['TAG_GIF_FORMAT_VERSION', :get_string],
1277
+ 'Image Width' => ['TAG_IMAGE_WIDTH', :get_long],
1278
+ 'Image Height' => ['TAG_IMAGE_HEIGHT', :get_long],
1279
+ 'Color Table Size' => ['TAG_COLOR_TABLE_SIZE', :get_string],
1280
+ 'Is Color Table Sorted' => ['TAG_IS_COLOR_TABLE_SORTED', :get_string],
1281
+ 'Bits Per Pixel' => ['TAG_BITS_PER_PIXEL', :get_string],
1282
+ 'Has Global Color Table' => ['TAG_HAS_GLOBAL_COLOR_TABLE', :get_string],
1283
+ 'Transparent Color Index' => ['TAG_TRANSPARENT_COLOR_INDEX', :get_string],
1284
+ 'Pixel Aspect Ratio' => ['TAG_PIXEL_ASPECT_RATIO', :get_string]
1285
+ }.freeze
1286
+ end
1287
+
1288
+ # GENERATED
1289
+ class IccDirectory < Directory
1290
+ java_import com.drew.metadata.icc.IccDirectory
1291
+
1292
+ def self.directory_class
1293
+ com.drew.metadata.icc.IccDirectory
1294
+ end
1295
+
1296
+ TAGS = {
1297
+ 'Profile Byte Count' => ['TAG_PROFILE_BYTE_COUNT', :get_string],
1298
+ 'Cmm Type' => ['TAG_CMM_TYPE', :get_string],
1299
+ 'Profile Version' => ['TAG_PROFILE_VERSION', :get_string],
1300
+ 'Profile Class' => ['TAG_PROFILE_CLASS', :get_string],
1301
+ 'Color Space' => ['TAG_COLOR_SPACE', :get_string],
1302
+ 'Profile Connection Space' => ['TAG_PROFILE_CONNECTION_SPACE', :get_string],
1303
+ 'Profile Datetime' => ['TAG_PROFILE_DATETIME', :get_string],
1304
+ 'Signature' => ['TAG_SIGNATURE', :get_string],
1305
+ 'Platform' => ['TAG_PLATFORM', :get_string],
1306
+ 'Cmm Flags' => ['TAG_CMM_FLAGS', :get_string],
1307
+ 'Device Make' => ['TAG_DEVICE_MAKE', :get_string],
1308
+ 'Device Model' => ['TAG_DEVICE_MODEL', :get_string],
1309
+ 'Device Attr' => ['TAG_DEVICE_ATTR', :get_string],
1310
+ 'Rendering Intent' => ['TAG_RENDERING_INTENT', :get_string],
1311
+ 'Xyz Values' => ['TAG_XYZ_VALUES', :get_string],
1312
+ 'Profile Creator' => ['TAG_PROFILE_CREATOR', :get_string],
1313
+ 'Count' => ['TAG_COUNT', :get_string],
1314
+ 'A2b0' => ['TAG_A2B0', :get_string],
1315
+ 'A2b1' => ['TAG_A2B1', :get_string],
1316
+ 'A2b2' => ['TAG_A2B2', :get_string],
1317
+ 'Bxyz' => ['TAG_bXYZ', :get_string],
1318
+ 'Btrc' => ['TAG_bTRC', :get_string],
1319
+ 'B2a0' => ['TAG_B2A0', :get_string],
1320
+ 'B2a1' => ['TAG_B2A1', :get_string],
1321
+ 'B2a2' => ['TAG_B2A2', :get_string],
1322
+ 'Calt' => ['TAG_calt', :get_string],
1323
+ 'Targ' => ['TAG_targ', :get_string],
1324
+ 'Chad' => ['TAG_chad', :get_string],
1325
+ 'Chrm' => ['TAG_chrm', :get_string],
1326
+ 'Cprt' => ['TAG_cprt', :get_string],
1327
+ 'Crdi' => ['TAG_crdi', :get_string],
1328
+ 'Dmnd' => ['TAG_dmnd', :get_string],
1329
+ 'Dmdd' => ['TAG_dmdd', :get_string],
1330
+ 'Devs' => ['TAG_devs', :get_string],
1331
+ 'Gamt' => ['TAG_gamt', :get_string],
1332
+ 'Ktrc' => ['TAG_kTRC', :get_string],
1333
+ 'Gxyz' => ['TAG_gXYZ', :get_string],
1334
+ 'Gtrc' => ['TAG_gTRC', :get_string],
1335
+ 'Lumi' => ['TAG_lumi', :get_string],
1336
+ 'Meas' => ['TAG_meas', :get_string],
1337
+ 'Bkpt' => ['TAG_bkpt', :get_string],
1338
+ 'Wtpt' => ['TAG_wtpt', :get_string],
1339
+ 'Ncol' => ['TAG_ncol', :get_string],
1340
+ 'Ncl2' => ['TAG_ncl2', :get_string],
1341
+ 'Resp' => ['TAG_resp', :get_string],
1342
+ 'Pre0' => ['TAG_pre0', :get_string],
1343
+ 'Pre1' => ['TAG_pre1', :get_string],
1344
+ 'Pre2' => ['TAG_pre2', :get_string],
1345
+ 'Desc' => ['TAG_desc', :get_string],
1346
+ 'Pseq' => ['TAG_pseq', :get_string],
1347
+ 'Psd0' => ['TAG_psd0', :get_string],
1348
+ 'Psd1' => ['TAG_psd1', :get_string],
1349
+ 'Psd2' => ['TAG_psd2', :get_string],
1350
+ 'Psd3' => ['TAG_psd3', :get_string],
1351
+ 'Ps2s' => ['TAG_ps2s', :get_string],
1352
+ 'Ps2i' => ['TAG_ps2i', :get_string],
1353
+ 'Rxyz' => ['TAG_rXYZ', :get_string],
1354
+ 'Rtrc' => ['TAG_rTRC', :get_string],
1355
+ 'Scrd' => ['TAG_scrd', :get_string],
1356
+ 'Scrn' => ['TAG_scrn', :get_string],
1357
+ 'Tech' => ['TAG_tech', :get_string],
1358
+ 'Bfd' => ['TAG_bfd', :get_string],
1359
+ 'Vued' => ['TAG_vued', :get_string],
1360
+ 'View' => ['TAG_view', :get_string],
1361
+ 'Apple Multi Language Profile Name' => ['TAG_APPLE_MULTI_LANGUAGE_PROFILE_NAME', :get_string]
1362
+ }.freeze
1363
+ end
1364
+
1365
+ # GENERATED
1366
+ class IptcDirectory < Directory
1367
+ java_import com.drew.metadata.iptc.IptcDirectory
1368
+
1369
+ def self.directory_class
1370
+ com.drew.metadata.iptc.IptcDirectory
1371
+ end
1372
+
1373
+ TAGS = {
1374
+ 'Envelope Record Version' => ['TAG_ENVELOPE_RECORD_VERSION', :get_string],
1375
+ 'Destination' => ['TAG_DESTINATION', :get_string],
1376
+ 'File Format' => ['TAG_FILE_FORMAT', :get_string],
1377
+ 'File Version' => ['TAG_FILE_VERSION', :get_string],
1378
+ 'Service Id' => ['TAG_SERVICE_ID', :get_string],
1379
+ 'Envelope Number' => ['TAG_ENVELOPE_NUMBER', :get_string],
1380
+ 'Product Id' => ['TAG_PRODUCT_ID', :get_string],
1381
+ 'Envelope Priority' => ['TAG_ENVELOPE_PRIORITY', :get_string],
1382
+ 'Date Sent' => ['TAG_DATE_SENT', :get_string],
1383
+ 'Time Sent' => ['TAG_TIME_SENT', :get_string],
1384
+ 'Coded Character Set' => ['TAG_CODED_CHARACTER_SET', :get_string],
1385
+ 'Unique Object Name' => ['TAG_UNIQUE_OBJECT_NAME', :get_string],
1386
+ 'Arm Identifier' => ['TAG_ARM_IDENTIFIER', :get_string],
1387
+ 'Arm Version' => ['TAG_ARM_VERSION', :get_string],
1388
+ 'Application Record Version' => ['TAG_APPLICATION_RECORD_VERSION', :get_string],
1389
+ 'Object Type Reference' => ['TAG_OBJECT_TYPE_REFERENCE', :get_string],
1390
+ 'Object Attribute Reference' => ['TAG_OBJECT_ATTRIBUTE_REFERENCE', :get_string],
1391
+ 'Object Name' => ['TAG_OBJECT_NAME', :get_string],
1392
+ 'Edit Status' => ['TAG_EDIT_STATUS', :get_string],
1393
+ 'Editorial Update' => ['TAG_EDITORIAL_UPDATE', :get_string],
1394
+ 'Urgency' => ['TAG_URGENCY', :get_string],
1395
+ 'Subject Reference' => ['TAG_SUBJECT_REFERENCE', :get_string],
1396
+ 'Category' => ['TAG_CATEGORY', :get_string],
1397
+ 'Supplemental Categories' => ['TAG_SUPPLEMENTAL_CATEGORIES', :get_string],
1398
+ 'Fixture Id' => ['TAG_FIXTURE_ID', :get_string],
1399
+ 'Keywords' => ['TAG_KEYWORDS', :get_string],
1400
+ 'Content Location Code' => ['TAG_CONTENT_LOCATION_CODE', :get_string],
1401
+ 'Content Location Name' => ['TAG_CONTENT_LOCATION_NAME', :get_string],
1402
+ 'Release Date' => ['TAG_RELEASE_DATE', :get_string],
1403
+ 'Release Time' => ['TAG_RELEASE_TIME', :get_string],
1404
+ 'Expiration Date' => ['TAG_EXPIRATION_DATE', :get_string],
1405
+ 'Expiration Time' => ['TAG_EXPIRATION_TIME', :get_string],
1406
+ 'Special Instructions' => ['TAG_SPECIAL_INSTRUCTIONS', :get_string],
1407
+ 'Action Advised' => ['TAG_ACTION_ADVISED', :get_string],
1408
+ 'Reference Service' => ['TAG_REFERENCE_SERVICE', :get_string],
1409
+ 'Reference Date' => ['TAG_REFERENCE_DATE', :get_string],
1410
+ 'Reference Number' => ['TAG_REFERENCE_NUMBER', :get_string],
1411
+ 'Date Created' => ['TAG_DATE_CREATED', :get_string],
1412
+ 'Time Created' => ['TAG_TIME_CREATED', :get_string],
1413
+ 'Digital Date Created' => ['TAG_DIGITAL_DATE_CREATED', :get_string],
1414
+ 'Digital Time Created' => ['TAG_DIGITAL_TIME_CREATED', :get_string],
1415
+ 'Originating Program' => ['TAG_ORIGINATING_PROGRAM', :get_string],
1416
+ 'Program Version' => ['TAG_PROGRAM_VERSION', :get_string],
1417
+ 'Object Cycle' => ['TAG_OBJECT_CYCLE', :get_string],
1418
+ 'By Line' => ['TAG_BY_LINE', :get_string],
1419
+ 'By Line Title' => ['TAG_BY_LINE_TITLE', :get_string],
1420
+ 'City' => ['TAG_CITY', :get_string],
1421
+ 'Sub Location' => ['TAG_SUB_LOCATION', :get_string],
1422
+ 'Province Or State' => ['TAG_PROVINCE_OR_STATE', :get_string],
1423
+ 'Country Or Primary Location Code' => ['TAG_COUNTRY_OR_PRIMARY_LOCATION_CODE', :get_string],
1424
+ 'Country Or Primary Location Name' => ['TAG_COUNTRY_OR_PRIMARY_LOCATION_NAME', :get_string],
1425
+ 'Original Transmission Reference' => ['TAG_ORIGINAL_TRANSMISSION_REFERENCE', :get_string],
1426
+ 'Headline' => ['TAG_HEADLINE', :get_string],
1427
+ 'Credit' => ['TAG_CREDIT', :get_string],
1428
+ 'Source' => ['TAG_SOURCE', :get_string],
1429
+ 'Copyright Notice' => ['TAG_COPYRIGHT_NOTICE', :get_string],
1430
+ 'Contact' => ['TAG_CONTACT', :get_string],
1431
+ 'Caption' => ['TAG_CAPTION', :get_string],
1432
+ 'Local Caption' => ['TAG_LOCAL_CAPTION', :get_string],
1433
+ 'Caption Writer' => ['TAG_CAPTION_WRITER', :get_string],
1434
+ 'Rasterized Caption' => ['TAG_RASTERIZED_CAPTION', :get_string],
1435
+ 'Image Type' => ['TAG_IMAGE_TYPE', :get_string],
1436
+ 'Image Orientation' => ['TAG_IMAGE_ORIENTATION', :get_string],
1437
+ 'Language Identifier' => ['TAG_LANGUAGE_IDENTIFIER', :get_string],
1438
+ 'Audio Type' => ['TAG_AUDIO_TYPE', :get_string],
1439
+ 'Audio Sampling Rate' => ['TAG_AUDIO_SAMPLING_RATE', :get_string],
1440
+ 'Audio Sampling Resolution' => ['TAG_AUDIO_SAMPLING_RESOLUTION', :get_string],
1441
+ 'Audio Duration' => ['TAG_AUDIO_DURATION', :get_string],
1442
+ 'Audio Outcue' => ['TAG_AUDIO_OUTCUE', :get_string],
1443
+ 'Job Id' => ['TAG_JOB_ID', :get_string],
1444
+ 'Master Document Id' => ['TAG_MASTER_DOCUMENT_ID', :get_string],
1445
+ 'Short Document Id' => ['TAG_SHORT_DOCUMENT_ID', :get_string],
1446
+ 'Unique Document Id' => ['TAG_UNIQUE_DOCUMENT_ID', :get_string],
1447
+ 'Owner Id' => ['TAG_OWNER_ID', :get_string],
1448
+ 'Object Preview File Format' => ['TAG_OBJECT_PREVIEW_FILE_FORMAT', :get_string],
1449
+ 'Object Preview File Format Version' => ['TAG_OBJECT_PREVIEW_FILE_FORMAT_VERSION', :get_string],
1450
+ 'Object Preview Data' => ['TAG_OBJECT_PREVIEW_DATA', :get_string]
1451
+ }.freeze
1452
+ end
1453
+
1454
+ # GENERATED
1455
+ class JfifDirectory < Directory
1456
+ java_import com.drew.metadata.jfif.JfifDirectory
1457
+
1458
+ def self.directory_class
1459
+ com.drew.metadata.jfif.JfifDirectory
1460
+ end
1461
+
1462
+ TAGS = {
1463
+ 'Version' => ['TAG_VERSION', :get_string],
1464
+ 'Units' => ['TAG_UNITS', :get_string],
1465
+ 'Resx' => ['TAG_RESX', :get_string],
1466
+ 'Resy' => ['TAG_RESY', :get_string]
1467
+ }.freeze
1468
+ end
1469
+
1470
+ # GENERATED
1471
+ class JpegCommentDirectory < Directory
1472
+ java_import com.drew.metadata.jpeg.JpegCommentDirectory
1473
+
1474
+ def self.directory_class
1475
+ com.drew.metadata.jpeg.JpegCommentDirectory
1476
+ end
1477
+
1478
+ TAGS = {
1479
+ 'Comment' => ['TAG_COMMENT', :get_string]
1480
+ }.freeze
1481
+ end
1482
+
1483
+ # GENERATED
1484
+ class JpegDirectory < Directory
1485
+ java_import com.drew.metadata.jpeg.JpegDirectory
1486
+
1487
+ def self.directory_class
1488
+ com.drew.metadata.jpeg.JpegDirectory
1489
+ end
1490
+
1491
+ TAGS = {
1492
+ 'Compression Type' => ['TAG_COMPRESSION_TYPE', :get_string],
1493
+ 'Data Precision' => ['TAG_DATA_PRECISION', :get_string],
1494
+ 'Image Height' => ['TAG_IMAGE_HEIGHT', :get_long],
1495
+ 'Image Width' => ['TAG_IMAGE_WIDTH', :get_long],
1496
+ 'Number Of Components' => ['TAG_NUMBER_OF_COMPONENTS', :get_string],
1497
+ 'Component Data 1' => ['TAG_COMPONENT_DATA_1', :get_string],
1498
+ 'Component Data 2' => ['TAG_COMPONENT_DATA_2', :get_string],
1499
+ 'Component Data 3' => ['TAG_COMPONENT_DATA_3', :get_string],
1500
+ 'Component Data 4' => ['TAG_COMPONENT_DATA_4', :get_string]
1501
+ }.freeze
1502
+ end
1503
+
1504
+ # GENERATED
1505
+ class PhotoshopDirectory < Directory
1506
+ java_import com.drew.metadata.photoshop.PhotoshopDirectory
1507
+
1508
+ def self.directory_class
1509
+ com.drew.metadata.photoshop.PhotoshopDirectory
1510
+ end
1511
+
1512
+ TAGS = {
1513
+ 'Channels Rows Columns Depth Mode' => ['TAG_CHANNELS_ROWS_COLUMNS_DEPTH_MODE', :get_string],
1514
+ 'Mac Print Info' => ['TAG_MAC_PRINT_INFO', :get_string],
1515
+ 'Xml' => ['TAG_XML', :get_string],
1516
+ 'Indexed Color Table' => ['TAG_INDEXED_COLOR_TABLE', :get_string],
1517
+ 'Resolution Info' => ['TAG_RESOLUTION_INFO', :get_string],
1518
+ 'Alpha Channels' => ['TAG_ALPHA_CHANNELS', :get_string],
1519
+ 'Display Info' => ['TAG_DISPLAY_INFO', :get_string],
1520
+ 'Caption' => ['TAG_CAPTION', :get_string],
1521
+ 'Border Information' => ['TAG_BORDER_INFORMATION', :get_string],
1522
+ 'Background Color' => ['TAG_BACKGROUND_COLOR', :get_string],
1523
+ 'Print Flags' => ['TAG_PRINT_FLAGS', :get_string],
1524
+ 'Grayscale And Multichannel Halftoning Information' => ['TAG_GRAYSCALE_AND_MULTICHANNEL_HALFTONING_INFORMATION', :get_string],
1525
+ 'Color Halftoning Information' => ['TAG_COLOR_HALFTONING_INFORMATION', :get_string],
1526
+ 'Duotone Halftoning Information' => ['TAG_DUOTONE_HALFTONING_INFORMATION', :get_string],
1527
+ 'Grayscale And Multichannel Transfer Function' => ['TAG_GRAYSCALE_AND_MULTICHANNEL_TRANSFER_FUNCTION', :get_string],
1528
+ 'Color Transfer Functions' => ['TAG_COLOR_TRANSFER_FUNCTIONS', :get_string],
1529
+ 'Duotone Transfer Functions' => ['TAG_DUOTONE_TRANSFER_FUNCTIONS', :get_string],
1530
+ 'Duotone Image Information' => ['TAG_DUOTONE_IMAGE_INFORMATION', :get_string],
1531
+ 'Effective Black And White Values' => ['TAG_EFFECTIVE_BLACK_AND_WHITE_VALUES', :get_string],
1532
+ 'Eps Options' => ['TAG_EPS_OPTIONS', :get_string],
1533
+ 'Quick Mask Information' => ['TAG_QUICK_MASK_INFORMATION', :get_string],
1534
+ 'Layer State Information' => ['TAG_LAYER_STATE_INFORMATION', :get_string],
1535
+ 'Layers Group Information' => ['TAG_LAYERS_GROUP_INFORMATION', :get_string],
1536
+ 'Iptc' => ['TAG_IPTC', :get_string],
1537
+ 'Image Mode For Raw Format Files' => ['TAG_IMAGE_MODE_FOR_RAW_FORMAT_FILES', :get_string],
1538
+ 'Jpeg Quality' => ['TAG_JPEG_QUALITY', :get_string],
1539
+ 'Grid And Guides Information' => ['TAG_GRID_AND_GUIDES_INFORMATION', :get_string],
1540
+ 'Thumbnail Old' => ['TAG_THUMBNAIL_OLD', :get_string],
1541
+ 'Copyright' => ['TAG_COPYRIGHT', :get_string],
1542
+ 'Url' => ['TAG_URL', :get_string],
1543
+ 'Thumbnail' => ['TAG_THUMBNAIL', :get_string],
1544
+ 'Global Angle' => ['TAG_GLOBAL_ANGLE', :get_string],
1545
+ 'Icc Untagged Profile' => ['TAG_ICC_UNTAGGED_PROFILE', :get_string],
1546
+ 'Seed Number' => ['TAG_SEED_NUMBER', :get_string],
1547
+ 'Global Altitude' => ['TAG_GLOBAL_ALTITUDE', :get_string],
1548
+ 'Slices' => ['TAG_SLICES', :get_string],
1549
+ 'Url List' => ['TAG_URL_LIST', :get_string],
1550
+ 'Version' => ['TAG_VERSION', :get_string],
1551
+ 'Caption Digest' => ['TAG_CAPTION_DIGEST', :get_string],
1552
+ 'Print Scale' => ['TAG_PRINT_SCALE', :get_string],
1553
+ 'Pixel Aspect Ratio' => ['TAG_PIXEL_ASPECT_RATIO', :get_string],
1554
+ 'Print Info' => ['TAG_PRINT_INFO', :get_string],
1555
+ 'Print Flags Info' => ['TAG_PRINT_FLAGS_INFO', :get_string]
1556
+ }.freeze
1557
+ end
1558
+
1559
+ # GENERATED
1560
+ class PsdHeaderDirectory < Directory
1561
+ java_import com.drew.metadata.photoshop.PsdHeaderDirectory
1562
+
1563
+ def self.directory_class
1564
+ com.drew.metadata.photoshop.PsdHeaderDirectory
1565
+ end
1566
+
1567
+ TAGS = {
1568
+ 'Channel Count' => ['TAG_CHANNEL_COUNT', :get_string],
1569
+ 'Image Height' => ['TAG_IMAGE_HEIGHT', :get_long],
1570
+ 'Image Width' => ['TAG_IMAGE_WIDTH', :get_long],
1571
+ 'Bits Per Channel' => ['TAG_BITS_PER_CHANNEL', :get_string],
1572
+ 'Color Mode' => ['TAG_COLOR_MODE', :get_string]
1573
+ }.freeze
1574
+ end
1575
+
1576
+ # GENERATED
1577
+ class PngChromaticitiesDirectory < Directory
1578
+ java_import com.drew.metadata.png.PngChromaticitiesDirectory
1579
+
1580
+ def self.directory_class
1581
+ com.drew.metadata.png.PngChromaticitiesDirectory
1582
+ end
1583
+
1584
+ TAGS = {
1585
+ 'White Point X' => ['TAG_WHITE_POINT_X', :get_string],
1586
+ 'White Point Y' => ['TAG_WHITE_POINT_Y', :get_string],
1587
+ 'Red X' => ['TAG_RED_X', :get_string],
1588
+ 'Red Y' => ['TAG_RED_Y', :get_string],
1589
+ 'Green X' => ['TAG_GREEN_X', :get_string],
1590
+ 'Green Y' => ['TAG_GREEN_Y', :get_string],
1591
+ 'Blue X' => ['TAG_BLUE_X', :get_string],
1592
+ 'Blue Y' => ['TAG_BLUE_Y', :get_string]
1593
+ }.freeze
1594
+ end
1595
+
1596
+ # GENERATED
1597
+ class PngDirectory < Directory
1598
+ java_import com.drew.metadata.png.PngDirectory
1599
+
1600
+ def self.directory_class
1601
+ com.drew.metadata.png.PngDirectory
1602
+ end
1603
+
1604
+ TAGS = {
1605
+ 'Image Width' => ['TAG_IMAGE_WIDTH', :get_long],
1606
+ 'Image Height' => ['TAG_IMAGE_HEIGHT', :get_long],
1607
+ 'Bits Per Sample' => ['TAG_BITS_PER_SAMPLE', :get_string],
1608
+ 'Color Type' => ['TAG_COLOR_TYPE', :get_string],
1609
+ 'Compression Type' => ['TAG_COMPRESSION_TYPE', :get_string],
1610
+ 'Filter Method' => ['TAG_FILTER_METHOD', :get_string],
1611
+ 'Interlace Method' => ['TAG_INTERLACE_METHOD', :get_string],
1612
+ 'Palette Size' => ['TAG_PALETTE_SIZE', :get_string],
1613
+ 'Palette Has Transparency' => ['TAG_PALETTE_HAS_TRANSPARENCY', :get_string],
1614
+ 'Srgb Rendering Intent' => ['TAG_SRGB_RENDERING_INTENT', :get_string],
1615
+ 'Gamma' => ['TAG_GAMMA', :get_string],
1616
+ 'Profile Name' => ['TAG_PROFILE_NAME', :get_string],
1617
+ 'Textual Data' => ['TAG_TEXTUAL_DATA', :get_string],
1618
+ 'Last Modification Time' => ['TAG_LAST_MODIFICATION_TIME', :get_string],
1619
+ 'Background Color' => ['TAG_BACKGROUND_COLOR', :get_string]
1620
+ }.freeze
1621
+ end
1622
+
1623
+ # GENERATED
1624
+ class XmpDirectory < Directory
1625
+ java_import com.drew.metadata.xmp.XmpDirectory
1626
+
1627
+ def self.directory_class
1628
+ com.drew.metadata.xmp.XmpDirectory
1629
+ end
1630
+
1631
+ TAGS = {
1632
+ 'Make' => ['TAG_MAKE', :get_string],
1633
+ 'Model' => ['TAG_MODEL', :get_string],
1634
+ 'Exposure Time' => ['TAG_EXPOSURE_TIME', :get_string],
1635
+ 'Shutter Speed' => ['TAG_SHUTTER_SPEED', :get_string],
1636
+ 'F Number' => ['TAG_F_NUMBER', :get_string],
1637
+ 'Lens Info' => ['TAG_LENS_INFO', :get_string],
1638
+ 'Lens' => ['TAG_LENS', :get_string],
1639
+ 'Camera Serial Number' => ['TAG_CAMERA_SERIAL_NUMBER', :get_string],
1640
+ 'Firmware' => ['TAG_FIRMWARE', :get_string],
1641
+ 'Focal Length' => ['TAG_FOCAL_LENGTH', :get_string],
1642
+ 'Aperture Value' => ['TAG_APERTURE_VALUE', :get_string],
1643
+ 'Exposure Program' => ['TAG_EXPOSURE_PROGRAM', :get_string],
1644
+ 'Datetime Original' => ['TAG_DATETIME_ORIGINAL', :get_string],
1645
+ 'Datetime Digitized' => ['TAG_DATETIME_DIGITIZED', :get_string],
1646
+ 'Rating' => ['TAG_RATING', :get_string]
1647
+ }.freeze
1648
+ end
1649
+
1650
+ DIRECTORY_MAP = {
1651
+ 'Adobe Jpeg' => AdobeJpegDirectory,
1652
+ 'Bmp Header' => BmpHeaderDirectory,
1653
+ 'Exif IFD0' => ExifIFD0Directory,
1654
+ 'Exif Interop' => ExifInteropDirectory,
1655
+ 'Exif Sub IFD' => ExifSubIFDDirectory,
1656
+ 'Exif Thumbnail' => ExifThumbnailDirectory,
1657
+ 'Gps' => GpsDirectory,
1658
+ 'Canon Makernote' => CanonMakernoteDirectory,
1659
+ 'Casio Type 1 Makernote' => CasioType1MakernoteDirectory,
1660
+ 'Casio Type 2 Makernote' => CasioType2MakernoteDirectory,
1661
+ 'Fujifilm Makernote' => FujifilmMakernoteDirectory,
1662
+ 'Kyocera Makernote' => KyoceraMakernoteDirectory,
1663
+ 'Leica Makernote' => LeicaMakernoteDirectory,
1664
+ 'Nikon Type 1 Makernote' => NikonType1MakernoteDirectory,
1665
+ 'Nikon Type 2 Makernote' => NikonType2MakernoteDirectory,
1666
+ 'Olympus Makernote' => OlympusMakernoteDirectory,
1667
+ 'Panasonic Makernote' => PanasonicMakernoteDirectory,
1668
+ 'Pentax Makernote' => PentaxMakernoteDirectory,
1669
+ 'Ricoh Makernote' => RicohMakernoteDirectory,
1670
+ 'Sanyo Makernote' => SanyoMakernoteDirectory,
1671
+ 'Sigma Makernote' => SigmaMakernoteDirectory,
1672
+ 'Sony Type 1 Makernote' => SonyType1MakernoteDirectory,
1673
+ 'Sony Type 6 Makernote' => SonyType6MakernoteDirectory,
1674
+ 'Gif Header' => GifHeaderDirectory,
1675
+ 'Icc' => IccDirectory,
1676
+ 'Iptc' => IptcDirectory,
1677
+ 'Jfif' => JfifDirectory,
1678
+ 'Jpeg Comment' => JpegCommentDirectory,
1679
+ 'Jpeg' => JpegDirectory,
1680
+ 'Photoshop' => PhotoshopDirectory,
1681
+ 'Psd Header' => PsdHeaderDirectory,
1682
+ 'Png Chromaticities' => PngChromaticitiesDirectory,
1683
+ 'Png' => PngDirectory,
1684
+ 'Xmp' => XmpDirectory,
1685
+
1686
+ # Aliases
1687
+ 'IFD0' => ExifIFD0Directory
1688
+ }.freeze
1689
+ end