класс ActiveStorage::Analyzer::ImageAnalyzer
Извлекает ширину и высоту в пикселях из изображения blob.
Если изображение содержит данные EXIF, указывающие, что его угол составляет 90 или 270 градусов, для удобства ширина и высота меняются местами.
Пример:
ActiveStorage::Analyzer::ImageAnalyzer.new(blob).metadata
# => { width: 4104, height: 2736 }
Этот анализатор полагается на стороннюю библиотеку MiniMagick. MiniMagick требует системной библиотеки ImageMagick.
Публичные Классовые Методы
# File activestorage/lib/active_storage/analyzer/image_analyzer.rb, line 16 def self.accept?(blob) blob.image? end
Публичные Экземплярные Методы
# File activestorage/lib/active_storage/analyzer/image_analyzer.rb, line 20
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
rescue LoadError
logger.info "Skipping image analysis because the mini_magick gem isn't installed"
{}
end
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.