Method: Fractal::Generator.image

Defined in:
lib/fractal/generator.rb

.image(options = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/fractal/generator.rb', line 3

def image(options = {})
  options.reverse_merge! default_image_options
  klass = options[:island] ? Fractal::IslandGenerator : self
  
  fractal = klass.new options
                
  if options[:alpha]
    image = Magick::Image.new(fractal.width, fractal.height) { self.background_color = 'transparent' }
    image.import_pixels 0, 0, fractal.width, fractal.height, 'IA', fractal.bytes.collect { |b| [b,b] }.flatten.pack('C*')
  else
    image = Magick::Image.new(fractal.width, fractal.height)
    image.import_pixels 0, 0, fractal.width, fractal.height, 'I', fractal.bytes.pack('C*')
  end
  
  options[:low_color] = '000000' if options[:low_color].blank?
  options[:high_color] = 'ffffff' if options[:high_color].blank?
  image = image.level_colors("##{options[:low_color]}", "##{options[:high_color]}", true)
  image
end