Class: PixelCurtain::SimpleCurtain

Inherits:
Curtain
  • Object
show all
Defined in:
lib/pixel_curtain/simple_curtain.rb

Instance Method Summary collapse

Methods inherited from Curtain

#initialize, #save

Constructor Details

This class inherits a constructor from PixelCurtain::Curtain

Instance Method Details

#process(options = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/pixel_curtain/simple_curtain.rb', line 3

def process(options = {})
  
  if options[:number_of_divisions].nil?
    number_of_divisions = 10
  else
    number_of_divisions = options[:number_of_divisions]
  end

  if (number_of_divisions > @source_image.columns)
    number_of_divisions = @source_image.columns
  end

  source_division_size = @source_image.columns / number_of_divisions
  destination_division_size = @output.columns / number_of_divisions

  gc = Draw.new
  
  (0...number_of_divisions).each do |x|
    avgPixel = average_color(@source_image.crop(source_division_size*x,0,
                source_division_size,@source_image.rows))
    gc.fill(avgPixel)
    gc.rectangle(x*destination_division_size,0,x*destination_division_size+destination_division_size,@output.rows)
    gc.draw(@output)
  end
  
  @output    
end