класс ActiveStorage::Analyzer::ImageAnalyzer
Извлекает ширину и высоту изображения в пикселях из двоичного объекта.
Если изображение содержит данные 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
end
© 2004–2019 David Heinemeier Hansson
Licensed under the MIT License.