class Pixage::Compare
Public Instance Methods
compare_images(images,options)
click to toggle source
# File lib/pixage/images/compare.rb, line 12 def compare_images(images,options) convert = Convert.new() if convert.check_sizes(images) console_log("Warning: Image sizes are not equal, the generated diff might be misleading, please use : ", :warning) console_log("pixage resize_n_compare\n", :pass) end execution_dir = Time.now.strftime("%d-%b-%y-%H-%M-%S") create_compare_execution_dir(execution_dir) cmd = "compare -dissimilarity-threshold #{options[:threshold]} -fuzz #{options[:fuzz]} -metric AE -highlight-color #{options[:color]} #{images[:expected]} #{images[:actual]} pixage_report/#{execution_dir}/diff.png" execute_command(cmd) Pathname.new("pixage_report/#{execution_dir}/diff.png").realpath.to_s end
resize_n_compare_images(images,options)
click to toggle source
# File lib/pixage/images/compare.rb, line 25 def resize_n_compare_images(images,options) convert = Convert.new() execution_dir = Time.now.strftime("%d-%b-%y-%H-%M-%S") create_compare_execution_dir(execution_dir) images = make_copies(images, "pixage_report/#{execution_dir}") convert.resize_images(images,options) cmd = "compare -dissimilarity-threshold #{options[:threshold]} -fuzz #{options[:fuzz]} -metric AE -highlight-color #{options[:color]} #{images[:expected]} #{images[:actual]} pixage_report/#{execution_dir}/diff.png" execute_command(cmd) Pathname.new("pixage_report/#{execution_dir}/diff.png").realpath.to_s end
Private Instance Methods
execute_command(cmd)
click to toggle source
# File lib/pixage/images/compare.rb, line 36 def execute_command(cmd) require 'open3' cmd_out = Open3.popen3(cmd)[2].read end
make_copies(images,path)
click to toggle source
# File lib/pixage/images/compare.rb, line 41 def make_copies(images,path) ts = Time.now.to_i expected = Pathname.new(path+"/expected_#{ts}#{File.extname(images[:expected])}") actual = Pathname.new(path+"/actual_#{ts}#{File.extname(images[:actual])}") FileUtils.cp(images[:expected], expected) FileUtils.cp(images[:actual], actual) {:expected => expected.realpath, :actual => actual.realpath} end