edge badge
Skip to Content Skip to Search

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
Methods
A
M

Class Public methods

accept?(blob)

# File activestorage/lib/active_storage/analyzer/image_analyzer.rb, line 13
def self.accept?(blob)
  blob.image?
end

Instance Public methods

metadata()

# File activestorage/lib/active_storage/analyzer/image_analyzer.rb, line 17
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