Class: ActiveStorage::Analyzer::ImageAnalyzer
- Inherits:
-
ActiveStorage::Analyzer
- Object
- ActiveStorage::Analyzer
- ActiveStorage::Analyzer::ImageAnalyzer
- Defined in:
- lib/active_storage/analyzer/image_analyzer.rb
Overview
Extracts width and height in pixels 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.new(blob).
# => { width: 4104, height: 2736 }
This analyzer relies on the third-party MiniMagick gem. MiniMagick requires the ImageMagick system library.
Instance Attribute Summary
Attributes inherited from ActiveStorage::Analyzer
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from ActiveStorage::Analyzer
Constructor Details
This class inherits a constructor from ActiveStorage::Analyzer
Class Method Details
.accept?(blob) ⇒ Boolean
16 17 18 |
# File 'lib/active_storage/analyzer/image_analyzer.rb', line 16 def self.accept?(blob) blob.image? end |
Instance Method Details
#metadata ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/active_storage/analyzer/image_analyzer.rb', line 20 def read_image do |image| if rotated_image?(image) { width: image.height, height: image.width } else { width: image.width, height: image.height } end end end |