Class: Diffux::SnapshotComparisonImage::Overlayed
- Defined in:
- lib/diffux_core/snapshot_comparison_image/overlayed.rb
Overview
This subclass of ‘SnapshotComparisonImage` knows how to overlay the after-image on top of the before-image, and render the difference in a scaled magenta color.
Constant Summary collapse
- WHITE_OVERLAY =
ChunkyPNG::Color.fade(WHITE, 1 - BASE_ALPHA)
Constants inherited from Base
Base::BASE_ALPHA, Base::BASE_DIFF_ALPHA, Base::BASE_OPACITY, Base::GREEN, Base::MAGENTA, Base::RED
Instance Method Summary collapse
-
#initialize(offset, canvas) ⇒ Overlayed
constructor
A new instance of Overlayed.
- #render_added_row(y, row) ⇒ Object
- #render_changed_row(y, row) ⇒ Object
- #render_deleted_row(y, row) ⇒ Object
- #render_unchanged_row(y, row) ⇒ Object
Methods inherited from Base
#diff_alpha, #pixel_diff_score, #render_pixel, #render_row
Constructor Details
#initialize(offset, canvas) ⇒ Overlayed
Returns a new instance of Overlayed.
12 13 14 15 16 |
# File 'lib/diffux_core/snapshot_comparison_image/overlayed.rb', line 12 def initialize(offset, canvas) @diff_pixels = {} @faded_pixels = {} super end |
Instance Method Details
#render_added_row(y, row) ⇒ Object
37 38 39 40 41 |
# File 'lib/diffux_core/snapshot_comparison_image/overlayed.rb', line 37 def render_added_row(y, row) row.new_element.each_with_index do |pixel_after, x| render_faded_magenta_pixel(pixel_after, TRANSPARENT, x, y) end end |
#render_changed_row(y, row) ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/diffux_core/snapshot_comparison_image/overlayed.rb', line 45 def render_changed_row(y, row) row.old_element.zip(row.new_element).each_with_index do |pixels, x| pixel_before, pixel_after = pixels render_faded_magenta_pixel( pixel_after || TRANSPARENT, pixel_before || TRANSPARENT, x, y) end end |
#render_deleted_row(y, row) ⇒ Object
29 30 31 32 33 |
# File 'lib/diffux_core/snapshot_comparison_image/overlayed.rb', line 29 def render_deleted_row(y, row) row.old_element.each_with_index do |pixel_before, x| render_faded_magenta_pixel(TRANSPARENT, pixel_before, x, y) end end |
#render_unchanged_row(y, row) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/diffux_core/snapshot_comparison_image/overlayed.rb', line 20 def render_unchanged_row(y, row) # Render translucent original pixels row.new_element.each_with_index do |pixel, x| render_faded_pixel(x, y, pixel) end end |