image_voodoo 0.8.8 → 0.9.2

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.
@@ -1,7 +1,10 @@
1
- require 'xmpcore-5.1.2.jar'
2
- require 'metadata-extractor-2.7.0.jar'
1
+ # frozen_string_literal: true
2
+
3
+ require 'image_voodoo_jars'
4
+ require 'stringio'
3
5
 
4
6
  class ImageVoodoo
7
+ # Metadata contained within the image.
5
8
  class Metadata
6
9
  def initialize(io)
7
10
  @metadata = com.drew.imaging.ImageMetadataReader.read_metadata io
@@ -15,10 +18,12 @@ class ImageVoodoo
15
18
  #
16
19
  # See Directory#exists? if you want to make sure the group you are
17
20
  # requesting actually exists or not.
18
- #
21
+ #
19
22
  def [](dirname)
20
23
  dirclass = DIRECTORY_MAP[dirname.to_s]
21
- raise ArgumentError.new "Uknown metadata group: #{dirname}" unless dirclass
24
+
25
+ raise ArgumentError, "Uknown metadata group: #{dirname}" unless dirclass
26
+
22
27
  dirclass.new @metadata
23
28
  end
24
29
 
@@ -45,17 +50,34 @@ class ImageVoodoo
45
50
  def width
46
51
  self['Exif Sub IFD']['Exif Image Width']
47
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
48
65
  end
49
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.
50
71
  class Directory
51
72
  def initialize(metadata)
52
- @directory = metadata.get_directory self.class.directory_class.java_class
73
+ jclass = self.class.directory_class.java_class
74
+ @directory = metadata.get_first_directory_of_type jclass
53
75
  end
54
76
 
55
77
  ##
56
78
  # Does the directory you requested exist as metadata for this image.
57
79
  def exists?
58
- !!@directory
80
+ @directory
59
81
  end
60
82
 
61
83
  ##
@@ -63,14 +85,20 @@ class ImageVoodoo
63
85
  # defined.
64
86
  def [](tag_name)
65
87
  return nil unless @directory
88
+
66
89
  (tag_type, tag_method) = self.class::TAGS[tag_name.to_s]
67
- raise ArgumentError.new "Unkown tag_name: #{tag_name}" unless tag_type
90
+
91
+ raise ArgumentError, "Unkown tag_name: #{tag_name}" unless tag_type
92
+
68
93
  java_tag_type = self.class.directory_class.const_get tag_type
94
+
69
95
  return nil unless @directory.contains_tag java_tag_type
96
+
70
97
  @directory.__send__ tag_method, java_tag_type
71
98
  end
72
99
  end
73
100
 
101
+ # GENERATED
74
102
  class AdobeJpegDirectory < Directory
75
103
  java_import com.drew.metadata.adobe.AdobeJpegDirectory
76
104
 
@@ -82,10 +110,11 @@ class ImageVoodoo
82
110
  'Dct Encode Version' => ['TAG_DCT_ENCODE_VERSION', :get_string],
83
111
  'App14 Flags0' => ['TAG_APP14_FLAGS0', :get_string],
84
112
  'App14 Flags1' => ['TAG_APP14_FLAGS1', :get_string],
85
- 'Color Transform' => ['TAG_COLOR_TRANSFORM', :get_string],
86
- }
113
+ 'Color Transform' => ['TAG_COLOR_TRANSFORM', :get_string]
114
+ }.freeze
87
115
  end
88
116
 
117
+ # GENERATED
89
118
  class BmpHeaderDirectory < Directory
90
119
  java_import com.drew.metadata.bmp.BmpHeaderDirectory
91
120
 
@@ -103,10 +132,11 @@ class ImageVoodoo
103
132
  'X Pixels Per Meter' => ['TAG_X_PIXELS_PER_METER', :get_string],
104
133
  'Y Pixels Per Meter' => ['TAG_Y_PIXELS_PER_METER', :get_string],
105
134
  'Palette Colour Count' => ['TAG_PALETTE_COLOUR_COUNT', :get_string],
106
- 'Important Colour Count' => ['TAG_IMPORTANT_COLOUR_COUNT', :get_string],
107
- }
135
+ 'Important Colour Count' => ['TAG_IMPORTANT_COLOUR_COUNT', :get_string]
136
+ }.freeze
108
137
  end
109
138
 
139
+ # GENERATED
110
140
  class ExifIFD0Directory < Directory
111
141
  java_import com.drew.metadata.exif.ExifIFD0Directory
112
142
 
@@ -138,10 +168,11 @@ class ImageVoodoo
138
168
  'Win Comment' => ['TAG_WIN_COMMENT', :get_string],
139
169
  'Win Author' => ['TAG_WIN_AUTHOR', :get_string],
140
170
  'Win Keywords' => ['TAG_WIN_KEYWORDS', :get_string],
141
- 'Win Subject' => ['TAG_WIN_SUBJECT', :get_string],
142
- }
171
+ 'Win Subject' => ['TAG_WIN_SUBJECT', :get_string]
172
+ }.freeze
143
173
  end
144
174
 
175
+ # GENERATED
145
176
  class ExifInteropDirectory < Directory
146
177
  java_import com.drew.metadata.exif.ExifInteropDirectory
147
178
 
@@ -154,10 +185,11 @@ class ImageVoodoo
154
185
  'Interop Version' => ['TAG_INTEROP_VERSION', :get_string],
155
186
  'Related Image File Format' => ['TAG_RELATED_IMAGE_FILE_FORMAT', :get_string],
156
187
  'Related Image Width' => ['TAG_RELATED_IMAGE_WIDTH', :get_long],
157
- 'Related Image Length' => ['TAG_RELATED_IMAGE_LENGTH', :get_long],
158
- }
188
+ 'Related Image Length' => ['TAG_RELATED_IMAGE_LENGTH', :get_long]
189
+ }.freeze
159
190
  end
160
191
 
192
+ # GENERATED
161
193
  class ExifSubIFDDirectory < Directory
162
194
  java_import com.drew.metadata.exif.ExifSubIFDDirectory
163
195
 
@@ -270,10 +302,11 @@ class ImageVoodoo
270
302
  'Lens Model' => ['TAG_LENS_MODEL', :get_string],
271
303
  'Lens Serial Number' => ['TAG_LENS_SERIAL_NUMBER', :get_string],
272
304
  'Gamma' => ['TAG_GAMMA', :get_string],
273
- 'Lens' => ['TAG_LENS', :get_string],
274
- }
305
+ 'Lens' => ['TAG_LENS', :get_string]
306
+ }.freeze
275
307
  end
276
308
 
309
+ # GENERATED
277
310
  class ExifThumbnailDirectory < Directory
278
311
  java_import com.drew.metadata.exif.ExifThumbnailDirectory
279
312
 
@@ -301,10 +334,11 @@ class ImageVoodoo
301
334
  'Ycbcr Coefficients' => ['TAG_YCBCR_COEFFICIENTS', :get_rational_array],
302
335
  'Ycbcr Subsampling' => ['TAG_YCBCR_SUBSAMPLING', :get_int_array],
303
336
  'Ycbcr Positioning' => ['TAG_YCBCR_POSITIONING', :get_int],
304
- 'Reference Black White' => ['TAG_REFERENCE_BLACK_WHITE', :get_rational_array],
305
- }
337
+ 'Reference Black White' => ['TAG_REFERENCE_BLACK_WHITE', :get_rational_array]
338
+ }.freeze
306
339
  end
307
340
 
341
+ # GENERATED
308
342
  class GpsDirectory < Directory
309
343
  java_import com.drew.metadata.exif.GpsDirectory
310
344
 
@@ -343,10 +377,11 @@ class ImageVoodoo
343
377
  'Processing Method' => ['TAG_PROCESSING_METHOD', :get_string],
344
378
  'Area Information' => ['TAG_AREA_INFORMATION', :get_string],
345
379
  'Date Stamp' => ['TAG_DATE_STAMP', :get_string],
346
- 'Differential' => ['TAG_DIFFERENTIAL', :get_string],
347
- }
380
+ 'Differential' => ['TAG_DIFFERENTIAL', :get_string]
381
+ }.freeze
348
382
  end
349
383
 
384
+ # GENERATED
350
385
  class CanonMakernoteDirectory < Directory
351
386
  java_import com.drew.metadata.exif.makernotes.CanonMakernoteDirectory
352
387
 
@@ -462,16 +497,12 @@ class ImageVoodoo
462
497
  'Target Aperture' => ['TAG_TARGET_APERTURE', :get_string],
463
498
  'Target Exposure Time' => ['TAG_TARGET_EXPOSURE_TIME', :get_string],
464
499
  'Exposure Compensation' => ['TAG_EXPOSURE_COMPENSATION', :get_string],
465
- 'White Balance' => ['TAG_WHITE_BALANCE', :get_string],
466
500
  'Slow Shutter' => ['TAG_SLOW_SHUTTER', :get_string],
467
- 'Sequence Number' => ['TAG_SEQUENCE_NUMBER', :get_string],
468
501
  'Optical Zoom Code' => ['TAG_OPTICAL_ZOOM_CODE', :get_string],
469
502
  'Camera Temperature' => ['TAG_CAMERA_TEMPERATURE', :get_string],
470
503
  'Flash Guide Number' => ['TAG_FLASH_GUIDE_NUMBER', :get_string],
471
504
  'Af Points In Focus' => ['TAG_AF_POINTS_IN_FOCUS', :get_string],
472
505
  'Flash Exposure Bracketing' => ['TAG_FLASH_EXPOSURE_BRACKETING', :get_string],
473
- 'Auto Exposure Bracketing' => ['TAG_AUTO_EXPOSURE_BRACKETING', :get_string],
474
- 'Aeb Bracket Value' => ['TAG_AEB_BRACKET_VALUE', :get_string],
475
506
  'Control Mode' => ['TAG_CONTROL_MODE', :get_string],
476
507
  'Focus Distance Upper' => ['TAG_FOCUS_DISTANCE_UPPER', :get_string],
477
508
  'Focus Distance Lower' => ['TAG_FOCUS_DISTANCE_LOWER', :get_string],
@@ -496,7 +527,6 @@ class ImageVoodoo
496
527
  'Af Area Height' => ['TAG_AF_AREA_HEIGHT', :get_string],
497
528
  'Af Area X Positions' => ['TAG_AF_AREA_X_POSITIONS', :get_string],
498
529
  'Af Area Y Positions' => ['TAG_AF_AREA_Y_POSITIONS', :get_string],
499
- 'Af Points In Focus' => ['TAG_AF_POINTS_IN_FOCUS', :get_string],
500
530
  'Primary Af Point 1' => ['TAG_PRIMARY_AF_POINT_1', :get_string],
501
531
  'Primary Af Point 2' => ['TAG_PRIMARY_AF_POINT_2', :get_string],
502
532
  'Canon Custom Function Long Exposure Noise Reduction' => ['TAG_CANON_CUSTOM_FUNCTION_LONG_EXPOSURE_NOISE_REDUCTION', :get_string],
@@ -511,10 +541,11 @@ class ImageVoodoo
511
541
  'Canon Custom Function Fill Flash Reduction' => ['TAG_CANON_CUSTOM_FUNCTION_FILL_FLASH_REDUCTION', :get_string],
512
542
  'Canon Custom Function Menu Button Return' => ['TAG_CANON_CUSTOM_FUNCTION_MENU_BUTTON_RETURN', :get_string],
513
543
  'Canon Custom Function Set Button Function' => ['TAG_CANON_CUSTOM_FUNCTION_SET_BUTTON_FUNCTION', :get_string],
514
- 'Canon Custom Function Sensor Cleaning' => ['TAG_CANON_CUSTOM_FUNCTION_SENSOR_CLEANING', :get_string],
515
- }
544
+ 'Canon Custom Function Sensor Cleaning' => ['TAG_CANON_CUSTOM_FUNCTION_SENSOR_CLEANING', :get_string]
545
+ }.freeze
516
546
  end
517
547
 
548
+ # GENERATED
518
549
  class CasioType1MakernoteDirectory < Directory
519
550
  java_import com.drew.metadata.exif.makernotes.CasioType1MakernoteDirectory
520
551
 
@@ -542,10 +573,11 @@ class ImageVoodoo
542
573
  'Unknown 6' => ['TAG_UNKNOWN_6', :get_string],
543
574
  'Unknown 7' => ['TAG_UNKNOWN_7', :get_string],
544
575
  'Unknown 8' => ['TAG_UNKNOWN_8', :get_string],
545
- 'Ccd Sensitivity' => ['TAG_CCD_SENSITIVITY', :get_string],
546
- }
576
+ 'Ccd Sensitivity' => ['TAG_CCD_SENSITIVITY', :get_string]
577
+ }.freeze
547
578
  end
548
579
 
580
+ # GENERATED
549
581
  class CasioType2MakernoteDirectory < Directory
550
582
  java_import com.drew.metadata.exif.makernotes.CasioType2MakernoteDirectory
551
583
 
@@ -581,10 +613,11 @@ class ImageVoodoo
581
613
  'Ccd Iso Sensitivity' => ['TAG_CCD_ISO_SENSITIVITY', :get_int],
582
614
  'Colour Mode' => ['TAG_COLOUR_MODE', :get_string],
583
615
  'Enhancement' => ['TAG_ENHANCEMENT', :get_string],
584
- 'Filter' => ['TAG_FILTER', :get_string],
585
- }
616
+ 'Filter' => ['TAG_FILTER', :get_string]
617
+ }.freeze
586
618
  end
587
619
 
620
+ # GENERATED
588
621
  class FujifilmMakernoteDirectory < Directory
589
622
  java_import com.drew.metadata.exif.makernotes.FujifilmMakernoteDirectory
590
623
 
@@ -636,10 +669,11 @@ class ImageVoodoo
636
669
  'File Source' => ['TAG_FILE_SOURCE', :get_string],
637
670
  'Order Number' => ['TAG_ORDER_NUMBER', :get_string],
638
671
  'Frame Number' => ['TAG_FRAME_NUMBER', :get_string],
639
- 'Parallax' => ['TAG_PARALLAX', :get_string],
640
- }
672
+ 'Parallax' => ['TAG_PARALLAX', :get_string]
673
+ }.freeze
641
674
  end
642
675
 
676
+ # GENERATED
643
677
  class KyoceraMakernoteDirectory < Directory
644
678
  java_import com.drew.metadata.exif.makernotes.KyoceraMakernoteDirectory
645
679
 
@@ -649,10 +683,11 @@ class ImageVoodoo
649
683
 
650
684
  TAGS = {
651
685
  'Proprietary Thumbnail' => ['TAG_PROPRIETARY_THUMBNAIL', :get_string],
652
- 'Print Image Matching Info' => ['TAG_PRINT_IMAGE_MATCHING_INFO', :get_string],
653
- }
686
+ 'Print Image Matching Info' => ['TAG_PRINT_IMAGE_MATCHING_INFO', :get_string]
687
+ }.freeze
654
688
  end
655
689
 
690
+ # GENERATED
656
691
  class LeicaMakernoteDirectory < Directory
657
692
  java_import com.drew.metadata.exif.makernotes.LeicaMakernoteDirectory
658
693
 
@@ -678,10 +713,11 @@ class ImageVoodoo
678
713
  'Ccd Board Version' => ['TAG_CCD_BOARD_VERSION', :get_string],
679
714
  'Controller Board Version' => ['TAG_CONTROLLER_BOARD_VERSION', :get_string],
680
715
  'M16 C Version' => ['TAG_M16_C_VERSION', :get_string],
681
- 'Image Id Number' => ['TAG_IMAGE_ID_NUMBER', :get_string],
682
- }
716
+ 'Image Id Number' => ['TAG_IMAGE_ID_NUMBER', :get_string]
717
+ }.freeze
683
718
  end
684
719
 
720
+ # GENERATED
685
721
  class NikonType1MakernoteDirectory < Directory
686
722
  java_import com.drew.metadata.exif.makernotes.NikonType1MakernoteDirectory
687
723
 
@@ -700,10 +736,11 @@ class ImageVoodoo
700
736
  'Unknown 2' => ['TAG_UNKNOWN_2', :get_string],
701
737
  'Digital Zoom' => ['TAG_DIGITAL_ZOOM', :get_string],
702
738
  'Converter' => ['TAG_CONVERTER', :get_string],
703
- 'Unknown 3' => ['TAG_UNKNOWN_3', :get_string],
704
- }
739
+ 'Unknown 3' => ['TAG_UNKNOWN_3', :get_string]
740
+ }.freeze
705
741
  end
706
742
 
743
+ # GENERATED
707
744
  class NikonType2MakernoteDirectory < Directory
708
745
  java_import com.drew.metadata.exif.makernotes.NikonType2MakernoteDirectory
709
746
 
@@ -828,10 +865,11 @@ class ImageVoodoo
828
865
  'Nikon Scan' => ['TAG_NIKON_SCAN', :get_string],
829
866
  'Unknown 54' => ['TAG_UNKNOWN_54', :get_string],
830
867
  'Nef Bit Depth' => ['TAG_NEF_BIT_DEPTH', :get_string],
831
- 'Unknown 55' => ['TAG_UNKNOWN_55', :get_string],
832
- }
868
+ 'Unknown 55' => ['TAG_UNKNOWN_55', :get_string]
869
+ }.freeze
833
870
  end
834
871
 
872
+ # GENERATED
835
873
  class OlympusMakernoteDirectory < Directory
836
874
  java_import com.drew.metadata.exif.makernotes.OlympusMakernoteDirectory
837
875
 
@@ -893,8 +931,6 @@ class ImageVoodoo
893
931
  'Final Height' => ['TAG_FINAL_HEIGHT', :get_string],
894
932
  'Compression Ratio' => ['TAG_COMPRESSION_RATIO', :get_string],
895
933
  'Exposure Mode' => ['TAG_EXPOSURE_MODE', :get_string],
896
- 'Flash Mode' => ['TAG_FLASH_MODE', :get_string],
897
- 'White Balance' => ['TAG_WHITE_BALANCE', :get_string],
898
934
  'Image Size' => ['TAG_IMAGE_SIZE', :get_string],
899
935
  'Image Quality' => ['TAG_IMAGE_QUALITY', :get_string],
900
936
  'Shooting Mode' => ['TAG_SHOOTING_MODE', :get_string],
@@ -902,14 +938,12 @@ class ImageVoodoo
902
938
  'Apex Film Speed Value' => ['TAG_APEX_FILM_SPEED_VALUE', :get_string],
903
939
  'Apex Shutter Speed Time Value' => ['TAG_APEX_SHUTTER_SPEED_TIME_VALUE', :get_string],
904
940
  'Apex Aperture Value' => ['TAG_APEX_APERTURE_VALUE', :get_string],
905
- 'Macro Mode' => ['TAG_MACRO_MODE', :get_string],
906
941
  'Digital Zoom' => ['TAG_DIGITAL_ZOOM', :get_string],
907
942
  'Exposure Compensation' => ['TAG_EXPOSURE_COMPENSATION', :get_string],
908
943
  'Bracket Step' => ['TAG_BRACKET_STEP', :get_string],
909
944
  'Interval Length' => ['TAG_INTERVAL_LENGTH', :get_string],
910
945
  'Interval Number' => ['TAG_INTERVAL_NUMBER', :get_string],
911
946
  'Focal Length' => ['TAG_FOCAL_LENGTH', :get_string],
912
- 'Focus Distance' => ['TAG_FOCUS_DISTANCE', :get_string],
913
947
  'Flash Fired' => ['TAG_FLASH_FIRED', :get_string],
914
948
  'Date' => ['TAG_DATE', :get_string],
915
949
  'Time' => ['TAG_TIME', :get_string],
@@ -920,8 +954,6 @@ class ImageVoodoo
920
954
  'White Balance Green' => ['TAG_WHITE_BALANCE_GREEN', :get_string],
921
955
  'White Balance Blue' => ['TAG_WHITE_BALANCE_BLUE', :get_string],
922
956
  'Saturation' => ['TAG_SATURATION', :get_string],
923
- 'Contrast' => ['TAG_CONTRAST', :get_string],
924
- 'Sharpness' => ['TAG_SHARPNESS', :get_string],
925
957
  'Subject Program' => ['TAG_SUBJECT_PROGRAM', :get_string],
926
958
  'Flash Compensation' => ['TAG_FLASH_COMPENSATION', :get_string],
927
959
  'Iso Setting' => ['TAG_ISO_SETTING', :get_string],
@@ -936,12 +968,12 @@ class ImageVoodoo
936
968
  'Spot Focus Point X Coordinate' => ['TAG_SPOT_FOCUS_POINT_X_COORDINATE', :get_string],
937
969
  'Spot Focus Point Y Coordinate' => ['TAG_SPOT_FOCUS_POINT_Y_COORDINATE', :get_string],
938
970
  'Wide Focus Zone' => ['TAG_WIDE_FOCUS_ZONE', :get_string],
939
- 'Focus Mode' => ['TAG_FOCUS_MODE', :get_string],
940
971
  'Focus Area' => ['TAG_FOCUS_AREA', :get_string],
941
- 'Dec Switch Position' => ['TAG_DEC_SWITCH_POSITION', :get_string],
942
- }
972
+ 'Dec Switch Position' => ['TAG_DEC_SWITCH_POSITION', :get_string]
973
+ }.freeze
943
974
  end
944
975
 
976
+ # GENERATED
945
977
  class PanasonicMakernoteDirectory < Directory
946
978
  java_import com.drew.metadata.exif.makernotes.PanasonicMakernoteDirectory
947
979
 
@@ -1019,10 +1051,11 @@ class ImageVoodoo
1019
1051
  'Text Stamp 2' => ['TAG_TEXT_STAMP_2', :get_string],
1020
1052
  'Text Stamp 3' => ['TAG_TEXT_STAMP_3', :get_string],
1021
1053
  'Baby Age 1' => ['TAG_BABY_AGE_1', :get_string],
1022
- 'Transform 1' => ['TAG_TRANSFORM_1', :get_string],
1023
- }
1054
+ 'Transform 1' => ['TAG_TRANSFORM_1', :get_string]
1055
+ }.freeze
1024
1056
  end
1025
1057
 
1058
+ # GENERATED
1026
1059
  class PentaxMakernoteDirectory < Directory
1027
1060
  java_import com.drew.metadata.exif.makernotes.PentaxMakernoteDirectory
1028
1061
 
@@ -1044,10 +1077,11 @@ class ImageVoodoo
1044
1077
  'Colour' => ['TAG_COLOUR', :get_string],
1045
1078
  'Print Image Matching Info' => ['TAG_PRINT_IMAGE_MATCHING_INFO', :get_string],
1046
1079
  'Time Zone' => ['TAG_TIME_ZONE', :get_string],
1047
- 'Daylight Savings' => ['TAG_DAYLIGHT_SAVINGS', :get_string],
1048
- }
1080
+ 'Daylight Savings' => ['TAG_DAYLIGHT_SAVINGS', :get_string]
1081
+ }.freeze
1049
1082
  end
1050
1083
 
1084
+ # GENERATED
1051
1085
  class RicohMakernoteDirectory < Directory
1052
1086
  java_import com.drew.metadata.exif.makernotes.RicohMakernoteDirectory
1053
1087
 
@@ -1059,10 +1093,11 @@ class ImageVoodoo
1059
1093
  'Makernote Data Type' => ['TAG_MAKERNOTE_DATA_TYPE', :get_string],
1060
1094
  'Version' => ['TAG_VERSION', :get_string],
1061
1095
  'Print Image Matching Info' => ['TAG_PRINT_IMAGE_MATCHING_INFO', :get_string],
1062
- 'Ricoh Camera Info Makernote Sub Ifd Pointer' => ['TAG_RICOH_CAMERA_INFO_MAKERNOTE_SUB_IFD_POINTER', :get_string],
1063
- }
1096
+ 'Ricoh Camera Info Makernote Sub Ifd Pointer' => ['TAG_RICOH_CAMERA_INFO_MAKERNOTE_SUB_IFD_POINTER', :get_string]
1097
+ }.freeze
1064
1098
  end
1065
1099
 
1100
+ # GENERATED
1066
1101
  class SanyoMakernoteDirectory < Directory
1067
1102
  java_import com.drew.metadata.exif.makernotes.SanyoMakernoteDirectory
1068
1103
 
@@ -1097,10 +1132,11 @@ class ImageVoodoo
1097
1132
  'Sequence Shot Interval' => ['TAG_SEQUENCE_SHOT_INTERVAL', :get_string],
1098
1133
  'Flash Mode' => ['TAG_FLASH_MODE', :get_string],
1099
1134
  'Print Im' => ['TAG_PRINT_IM', :get_string],
1100
- 'Data Dump' => ['TAG_DATA_DUMP', :get_string],
1101
- }
1135
+ 'Data Dump' => ['TAG_DATA_DUMP', :get_string]
1136
+ }.freeze
1102
1137
  end
1103
1138
 
1139
+ # GENERATED
1104
1140
  class SigmaMakernoteDirectory < Directory
1105
1141
  java_import com.drew.metadata.exif.makernotes.SigmaMakernoteDirectory
1106
1142
 
@@ -1131,10 +1167,11 @@ class ImageVoodoo
1131
1167
  'Quality' => ['TAG_QUALITY', :get_string],
1132
1168
  'Firmware' => ['TAG_FIRMWARE', :get_string],
1133
1169
  'Software' => ['TAG_SOFTWARE', :get_string],
1134
- 'Auto Bracket' => ['TAG_AUTO_BRACKET', :get_string],
1135
- }
1170
+ 'Auto Bracket' => ['TAG_AUTO_BRACKET', :get_string]
1171
+ }.freeze
1136
1172
  end
1137
1173
 
1174
+ # GENERATED
1138
1175
  class SonyType1MakernoteDirectory < Directory
1139
1176
  java_import com.drew.metadata.exif.makernotes.SonyType1MakernoteDirectory
1140
1177
 
@@ -1207,10 +1244,11 @@ class ImageVoodoo
1207
1244
  'High Iso Noise Reduction 2' => ['TAG_HIGH_ISO_NOISE_REDUCTION_2', :get_string],
1208
1245
  'Intelligent Auto' => ['TAG_INTELLIGENT_AUTO', :get_string],
1209
1246
  'White Balance 2' => ['TAG_WHITE_BALANCE_2', :get_string],
1210
- 'No Print' => ['TAG_NO_PRINT', :get_string],
1211
- }
1247
+ 'No Print' => ['TAG_NO_PRINT', :get_string]
1248
+ }.freeze
1212
1249
  end
1213
1250
 
1251
+ # GENERATED
1214
1252
  class SonyType6MakernoteDirectory < Directory
1215
1253
  java_import com.drew.metadata.exif.makernotes.SonyType6MakernoteDirectory
1216
1254
 
@@ -1222,10 +1260,11 @@ class ImageVoodoo
1222
1260
  'Makernote Thumb Offset' => ['TAG_MAKERNOTE_THUMB_OFFSET', :get_string],
1223
1261
  'Makernote Thumb Length' => ['TAG_MAKERNOTE_THUMB_LENGTH', :get_string],
1224
1262
  'Unknown 1' => ['TAG_UNKNOWN_1', :get_string],
1225
- 'Makernote Thumb Version' => ['TAG_MAKERNOTE_THUMB_VERSION', :get_string],
1226
- }
1263
+ 'Makernote Thumb Version' => ['TAG_MAKERNOTE_THUMB_VERSION', :get_string]
1264
+ }.freeze
1227
1265
  end
1228
1266
 
1267
+ # GENERATED
1229
1268
  class GifHeaderDirectory < Directory
1230
1269
  java_import com.drew.metadata.gif.GifHeaderDirectory
1231
1270
 
@@ -1242,10 +1281,11 @@ class ImageVoodoo
1242
1281
  'Bits Per Pixel' => ['TAG_BITS_PER_PIXEL', :get_string],
1243
1282
  'Has Global Color Table' => ['TAG_HAS_GLOBAL_COLOR_TABLE', :get_string],
1244
1283
  'Transparent Color Index' => ['TAG_TRANSPARENT_COLOR_INDEX', :get_string],
1245
- 'Pixel Aspect Ratio' => ['TAG_PIXEL_ASPECT_RATIO', :get_string],
1246
- }
1284
+ 'Pixel Aspect Ratio' => ['TAG_PIXEL_ASPECT_RATIO', :get_string]
1285
+ }.freeze
1247
1286
  end
1248
1287
 
1288
+ # GENERATED
1249
1289
  class IccDirectory < Directory
1250
1290
  java_import com.drew.metadata.icc.IccDirectory
1251
1291
 
@@ -1318,10 +1358,11 @@ class ImageVoodoo
1318
1358
  'Bfd' => ['TAG_bfd', :get_string],
1319
1359
  'Vued' => ['TAG_vued', :get_string],
1320
1360
  'View' => ['TAG_view', :get_string],
1321
- 'Apple Multi Language Profile Name' => ['TAG_APPLE_MULTI_LANGUAGE_PROFILE_NAME', :get_string],
1322
- }
1361
+ 'Apple Multi Language Profile Name' => ['TAG_APPLE_MULTI_LANGUAGE_PROFILE_NAME', :get_string]
1362
+ }.freeze
1323
1363
  end
1324
1364
 
1365
+ # GENERATED
1325
1366
  class IptcDirectory < Directory
1326
1367
  java_import com.drew.metadata.iptc.IptcDirectory
1327
1368
 
@@ -1406,10 +1447,11 @@ class ImageVoodoo
1406
1447
  'Owner Id' => ['TAG_OWNER_ID', :get_string],
1407
1448
  'Object Preview File Format' => ['TAG_OBJECT_PREVIEW_FILE_FORMAT', :get_string],
1408
1449
  'Object Preview File Format Version' => ['TAG_OBJECT_PREVIEW_FILE_FORMAT_VERSION', :get_string],
1409
- 'Object Preview Data' => ['TAG_OBJECT_PREVIEW_DATA', :get_string],
1410
- }
1450
+ 'Object Preview Data' => ['TAG_OBJECT_PREVIEW_DATA', :get_string]
1451
+ }.freeze
1411
1452
  end
1412
1453
 
1454
+ # GENERATED
1413
1455
  class JfifDirectory < Directory
1414
1456
  java_import com.drew.metadata.jfif.JfifDirectory
1415
1457
 
@@ -1421,10 +1463,11 @@ class ImageVoodoo
1421
1463
  'Version' => ['TAG_VERSION', :get_string],
1422
1464
  'Units' => ['TAG_UNITS', :get_string],
1423
1465
  'Resx' => ['TAG_RESX', :get_string],
1424
- 'Resy' => ['TAG_RESY', :get_string],
1425
- }
1466
+ 'Resy' => ['TAG_RESY', :get_string]
1467
+ }.freeze
1426
1468
  end
1427
1469
 
1470
+ # GENERATED
1428
1471
  class JpegCommentDirectory < Directory
1429
1472
  java_import com.drew.metadata.jpeg.JpegCommentDirectory
1430
1473
 
@@ -1433,10 +1476,11 @@ class ImageVoodoo
1433
1476
  end
1434
1477
 
1435
1478
  TAGS = {
1436
- 'Comment' => ['TAG_COMMENT', :get_string],
1437
- }
1479
+ 'Comment' => ['TAG_COMMENT', :get_string]
1480
+ }.freeze
1438
1481
  end
1439
1482
 
1483
+ # GENERATED
1440
1484
  class JpegDirectory < Directory
1441
1485
  java_import com.drew.metadata.jpeg.JpegDirectory
1442
1486
 
@@ -1453,10 +1497,11 @@ class ImageVoodoo
1453
1497
  'Component Data 1' => ['TAG_COMPONENT_DATA_1', :get_string],
1454
1498
  'Component Data 2' => ['TAG_COMPONENT_DATA_2', :get_string],
1455
1499
  'Component Data 3' => ['TAG_COMPONENT_DATA_3', :get_string],
1456
- 'Component Data 4' => ['TAG_COMPONENT_DATA_4', :get_string],
1457
- }
1500
+ 'Component Data 4' => ['TAG_COMPONENT_DATA_4', :get_string]
1501
+ }.freeze
1458
1502
  end
1459
1503
 
1504
+ # GENERATED
1460
1505
  class PhotoshopDirectory < Directory
1461
1506
  java_import com.drew.metadata.photoshop.PhotoshopDirectory
1462
1507
 
@@ -1507,10 +1552,11 @@ class ImageVoodoo
1507
1552
  'Print Scale' => ['TAG_PRINT_SCALE', :get_string],
1508
1553
  'Pixel Aspect Ratio' => ['TAG_PIXEL_ASPECT_RATIO', :get_string],
1509
1554
  'Print Info' => ['TAG_PRINT_INFO', :get_string],
1510
- 'Print Flags Info' => ['TAG_PRINT_FLAGS_INFO', :get_string],
1511
- }
1555
+ 'Print Flags Info' => ['TAG_PRINT_FLAGS_INFO', :get_string]
1556
+ }.freeze
1512
1557
  end
1513
1558
 
1559
+ # GENERATED
1514
1560
  class PsdHeaderDirectory < Directory
1515
1561
  java_import com.drew.metadata.photoshop.PsdHeaderDirectory
1516
1562
 
@@ -1523,10 +1569,11 @@ class ImageVoodoo
1523
1569
  'Image Height' => ['TAG_IMAGE_HEIGHT', :get_long],
1524
1570
  'Image Width' => ['TAG_IMAGE_WIDTH', :get_long],
1525
1571
  'Bits Per Channel' => ['TAG_BITS_PER_CHANNEL', :get_string],
1526
- 'Color Mode' => ['TAG_COLOR_MODE', :get_string],
1527
- }
1572
+ 'Color Mode' => ['TAG_COLOR_MODE', :get_string]
1573
+ }.freeze
1528
1574
  end
1529
1575
 
1576
+ # GENERATED
1530
1577
  class PngChromaticitiesDirectory < Directory
1531
1578
  java_import com.drew.metadata.png.PngChromaticitiesDirectory
1532
1579
 
@@ -1542,10 +1589,11 @@ class ImageVoodoo
1542
1589
  'Green X' => ['TAG_GREEN_X', :get_string],
1543
1590
  'Green Y' => ['TAG_GREEN_Y', :get_string],
1544
1591
  'Blue X' => ['TAG_BLUE_X', :get_string],
1545
- 'Blue Y' => ['TAG_BLUE_Y', :get_string],
1546
- }
1592
+ 'Blue Y' => ['TAG_BLUE_Y', :get_string]
1593
+ }.freeze
1547
1594
  end
1548
1595
 
1596
+ # GENERATED
1549
1597
  class PngDirectory < Directory
1550
1598
  java_import com.drew.metadata.png.PngDirectory
1551
1599
 
@@ -1568,10 +1616,11 @@ class ImageVoodoo
1568
1616
  'Profile Name' => ['TAG_PROFILE_NAME', :get_string],
1569
1617
  'Textual Data' => ['TAG_TEXTUAL_DATA', :get_string],
1570
1618
  'Last Modification Time' => ['TAG_LAST_MODIFICATION_TIME', :get_string],
1571
- 'Background Color' => ['TAG_BACKGROUND_COLOR', :get_string],
1572
- }
1619
+ 'Background Color' => ['TAG_BACKGROUND_COLOR', :get_string]
1620
+ }.freeze
1573
1621
  end
1574
1622
 
1623
+ # GENERATED
1575
1624
  class XmpDirectory < Directory
1576
1625
  java_import com.drew.metadata.xmp.XmpDirectory
1577
1626
 
@@ -1594,11 +1643,10 @@ class ImageVoodoo
1594
1643
  'Exposure Program' => ['TAG_EXPOSURE_PROGRAM', :get_string],
1595
1644
  'Datetime Original' => ['TAG_DATETIME_ORIGINAL', :get_string],
1596
1645
  'Datetime Digitized' => ['TAG_DATETIME_DIGITIZED', :get_string],
1597
- 'Rating' => ['TAG_RATING', :get_string],
1598
- }
1646
+ 'Rating' => ['TAG_RATING', :get_string]
1647
+ }.freeze
1599
1648
  end
1600
1649
 
1601
-
1602
1650
  DIRECTORY_MAP = {
1603
1651
  'Adobe Jpeg' => AdobeJpegDirectory,
1604
1652
  'Bmp Header' => BmpHeaderDirectory,
@@ -1636,6 +1684,6 @@ class ImageVoodoo
1636
1684
  'Xmp' => XmpDirectory,
1637
1685
 
1638
1686
  # Aliases
1639
- 'IFD0' => ExifIFD0Directory,
1640
- }
1687
+ 'IFD0' => ExifIFD0Directory
1688
+ }.freeze
1641
1689
  end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ImageVoodoo; NEEDS_HEAD = true; end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ImageVoodoo
2
- VERSION = "0.8.8"
4
+ VERSION = '0.9.2'
3
5
  end