Active Storage Image Analyzer

This is an abstract base class for image analyzers, which extract width and height from an image blob.

If the image contains EXIF data indicating its angle is 90 or 270 degrees, its width and height are swapped for convenience.

Example:

ActiveStorage::Analyzer::ImageAnalyzer::ImageMagick.new(blob).metadata
# => { width: 4104, height: 2736 }

Namespace

Class

Methods

Class Public methods

accept?(blob)

📝 Source code
# File activestorage/lib/active_storage/analyzer/image_analyzer.rb, line 15
    def self.accept?(blob)
      blob.image?
    end
🔎 See on GitHub

Instance Public methods

metadata()

📝 Source code
# File activestorage/lib/active_storage/analyzer/image_analyzer.rb, line 19
    def metadata
      read_image do |image|
        if rotated_image?(image)
          { width: image.height, height: image.width }
        else
          { width: image.width, height: image.height }
        end
      end
    end
🔎 See on GitHub