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 }
# File activestorage/lib/active_storage/analyzer/image_analyzer.rb, line 13 def self.accept?(blob) blob.image? end
# 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
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.