class ImageMosaic::Image::Parent
Takes an array of images and metrics and then returns a single image of composited images.
Public Class Methods
new(items, colour:, width:)
click to toggle source
# File lib/image_mosaic/image/parent.rb, line 5 def initialize(items, colour:, width:) @items = items @colour = colour @width = width end
Public Instance Methods
create()
click to toggle source
# File lib/image_mosaic/image/parent.rb, line 11 def create image.run_command(:convert, '-size', dimensions, "xc:#{@colour}", image.path) @items.each { |item| @image = add_image(item) } Mosaic.new(image) end
Private Instance Methods
add_image(image)
click to toggle source
# File lib/image_mosaic/image/parent.rb, line 24 def add_image(image) Operations::Compositor.new(@image, image).save end
dimensions()
click to toggle source
# File lib/image_mosaic/image/parent.rb, line 19 def dimensions # Parent image is always square for time being. "#{@width}x#{@width}" end
image()
click to toggle source
# File lib/image_mosaic/image/parent.rb, line 32 def image @image ||= MiniMagick::Image.new(temp_file.path) end
temp_file()
click to toggle source
# File lib/image_mosaic/image/parent.rb, line 28 def temp_file @temp_file ||= Tempfile.new(['image_mosaic', '.png']) end