Class: ImageCollage::CollageGenerator

Inherits:
Object
  • Object
show all
Includes:
Magick
Defined in:
lib/imagecollage/collage_generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(image_urls) ⇒ CollageGenerator

Returns a new instance of CollageGenerator.



8
9
10
# File 'lib/imagecollage/collage_generator.rb', line 8

def initialize(image_urls)
  @image_urls = image_urls
end

Instance Method Details

#generate_image_collage(path) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/imagecollage/collage_generator.rb', line 12

def generate_image_collage(path)
  tmp_files = []
  @image_urls.each do |image_url|
    tmp_file = Tempfile.new(['image_collage', '.jpg'])

    open(image_url) do |image_file|
      tmp_file.write(image_file.read)
    end

    tmp_file.rewind
    tmp_files << tmp_file
  end

  image_list = ImageList.new(*tmp_files.map(&:path))

  resize!(image_list)
  image_list = montage(image_list)

  image_list.write(path)
ensure
  tmp_files.each do |tmp_file|
    tmp_file.close
    tmp_file.unlink
  end
end