Class: Monet::ColorBlend

Inherits:
DiffStrategy show all
Defined in:
lib/monet/diff_strategy.rb

Instance Attribute Summary

Attributes inherited from DiffStrategy

#score

Instance Method Summary collapse

Methods inherited from DiffStrategy

#save

Constructor Details

#initialize(base_image, diff_image) ⇒ ColorBlend



58
59
60
61
# File 'lib/monet/diff_strategy.rb', line 58

def initialize(base_image, diff_image)
  super
  @output = ChunkyPNG::Image.new(base_image.width, base_image.height, BLACK)
end

Instance Method Details

#calculate_for_pixel(pixel, x, y) ⇒ Object



63
64
65
66
67
68
69
70
# File 'lib/monet/diff_strategy.rb', line 63

def calculate_for_pixel(pixel, x, y)
  rgb_colors = %w(r g b).map do |color|
    for_color(color, pixel) + for_color(color, @diff_image[x,y]) - 2 * [for_color(color, pixel), for_color(color, @diff_image[x,y])].min
  end

  @output[x,y] = rgb(*rgb_colors)
  super
end