class Ramesh::Image

Constants

MAP_URL_BASE
MESH_URL_BASE

Public Class Methods

new(image_name, image_size = :small) click to toggle source
# File lib/ramesh/image.rb, line 9
def initialize(image_name, image_size = :small)
  image_list = [
                background_image(image_size),
                moment_image(image_name, image_size),
                mask_image(image_size)
               ]
  @image = composite_images(image_list)
end

Public Instance Methods

save(save_dir, filename) click to toggle source
# File lib/ramesh/image.rb, line 18
def save(save_dir, filename)
  save_path = File.join(save_dir, filename)
  @image.write(save_path)
end

Private Instance Methods

background_image(image_size) click to toggle source
# File lib/ramesh/image.rb, line 25
def background_image(image_size)
  download_image(background_image_url(image_size))
end
background_image_url(image_size) click to toggle source
# File lib/ramesh/image.rb, line 52
def background_image_url(image_size)
  "#{MAP_URL_BASE}/map#{size_number(image_size)}.jpg"
end
composite_images(image_list) click to toggle source
# File lib/ramesh/image.rb, line 64
def composite_images(image_list)
  image = image_list.shift

  image_list.each do |layer|
    image = image.composite(layer) do |c|
      c.compose "Over"
    end
  end

  image
end
download_image(url) click to toggle source
# File lib/ramesh/image.rb, line 37
def download_image(url)
  MiniMagick::Image.read(open(url).read)
end
mask_image(image_size) click to toggle source
# File lib/ramesh/image.rb, line 33
def mask_image(image_size)
  download_image(mask_image_url(image_size))
end
mask_image_url(image_size) click to toggle source
# File lib/ramesh/image.rb, line 60
def mask_image_url(image_size)
  "#{MAP_URL_BASE}/msk#{size_number(image_size)}.png"
end
moment_image(image_name, image_size) click to toggle source
# File lib/ramesh/image.rb, line 29
def moment_image(image_name, image_size)
  download_image(moment_image_url(image_name, image_size))
end
moment_image_url(image_name, image_size) click to toggle source
# File lib/ramesh/image.rb, line 56
def moment_image_url(image_name, image_size)
  "#{MESH_URL_BASE}/#{size_number(image_size)}/#{image_name}.gif"
end
size_number(image_size) click to toggle source
# File lib/ramesh/image.rb, line 41
def size_number(image_size)
  case image_size
  when :small
    "000"
  when :large
    "100"
  else
    raise ArgumentError, "Invalid size is given"
  end
end