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.
- checksums.yaml +5 -5
- data/.gitignore +4 -0
- data/.rubocop.yml +165 -0
- data/.travis.yml +16 -1
- data/Gemfile +5 -0
- data/Jars.lock +3 -0
- data/Rakefile +14 -4
- data/bin/image_voodoo +73 -84
- data/image_voodoo.gemspec +14 -7
- data/lib/image_science.rb +3 -1
- data/lib/image_voodoo/awt/core_ext/buffered_image.rb +15 -0
- data/lib/image_voodoo/awt/core_ext/graphics2d.rb +15 -0
- data/lib/image_voodoo/awt/shapes.rb +41 -3
- data/lib/image_voodoo/awt.rb +162 -152
- data/lib/image_voodoo/gae.rb +12 -6
- data/lib/image_voodoo/metadata.rb +138 -90
- data/lib/image_voodoo/needs_head.rb +3 -0
- data/lib/image_voodoo/version.rb +3 -1
- data/lib/image_voodoo.rb +47 -96
- data/samples/bench.rb +30 -36
- data/samples/file_greyscale.rb +2 -0
- data/samples/file_thumbnail.rb +2 -0
- data/samples/file_view.rb +4 -1
- data/samples/{in-memory.rb → in_memory.rb} +2 -0
- data/samples/lossy.rb +2 -0
- data/test/test_image_science.rb +34 -74
- data/test/test_image_voodoo.rb +84 -0
- data/test/test_metadata.rb +31 -16
- data/test/test_shapes.rb +23 -0
- data/tools/gen.rb +34 -27
- metadata +87 -10
- data/vendor/metadata-extractor-2.7.0.jar +0 -0
- data/vendor/xmpcore-5.1.2.jar +0 -0
| @@ -1,7 +1,10 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 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 | 
            -
             | 
| 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 | 
            -
                   | 
| 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 | 
            -
                   | 
| 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 | 
            -
             | 
| 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
         | 
    
        data/lib/image_voodoo/version.rb
    CHANGED