class Simulacrum::RMagicDiff

The RMagicDiff class implements image diffing using ImageMagick

Public Instance Methods

delta() click to toggle source
# File lib/simulacrum/diff/rmagick.rb, line 8
def delta
  @delta * 100
end

Private Instance Methods

compare() click to toggle source
# File lib/simulacrum/diff/rmagick.rb, line 14
def compare
  a = Magick::Image.read(@a_path)
  b = Magick::Image.read(@b_path)
  @image, @delta = square_root_mean_squared(a, b)
end
square_root_mean_squared(a, b) click to toggle source
# File lib/simulacrum/diff/rmagick.rb, line 20
def square_root_mean_squared(a, b)
  # Calculate the Square Root Mean Squared Error for the comparison of the
  # two images.
  #
  # Gets the color difference for each pixel, and square it, average all
  # the squared differences, then return the square root.
  #
  # http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=17284
  a[0].compare_channel(b[0], Magick::MeanSquaredErrorMetric)
end