class ActiveAnalysis::Analyzer::ImageAnalyzer::ImageMagick
This analyzer relies on the third-party MiniMagick gem. MiniMagick requires the ImageMagick system library.
Public Class Methods
accept?(blob)
click to toggle source
Calls superclass method
ActiveAnalysis::Analyzer::ImageAnalyzer::accept?
# File lib/active_analysis/analyzer/image_analyzer/image_magick.rb, line 9 def self.accept?(blob) super && ActiveAnalysis.image_library == :mini_magick end
Private Instance Methods
opaque?(image)
click to toggle source
# File lib/active_analysis/analyzer/image_analyzer/image_magick.rb, line 38 def opaque?(image) return true unless image.data["channelDepth"].key?("alpha") value = /7.\d/.match?(image.data["version"]) ? 255 : 0 image.data["channelStatistics"]["alpha"]["mean"] == value end
read_image() { |image| ... }
click to toggle source
# File lib/active_analysis/analyzer/image_analyzer/image_magick.rb, line 14 def read_image download_blob_to_tempfile do |file| require "mini_magick" image = MiniMagick::Image.new(file.path) if image.valid? yield image else logger.info "Skipping image analysis because ImageMagick doesn't support the file" {} end end rescue LoadError logger.info "Skipping image analysis because the mini_magick gem isn't installed" {} rescue MiniMagick::Error => error logger.error "Skipping image analysis due to an ImageMagick error: #{error.message}" {} end
rotated_image?(image)
click to toggle source
# File lib/active_analysis/analyzer/image_analyzer/image_magick.rb, line 34 def rotated_image?(image) %w[ RightTop LeftBottom TopRight BottomLeft ].include?(image["%[orientation]"]) end