module AwesomeMapMarker

##########################################

AwesomeMapMarker
Version 0.1.0
2019-02-04
Author Kazuomatz

##########################################

Constants

VERSION

Public Class Methods

generate(type: :fas, name: 'fa-map-marker-alt', size: 128, fill_color: ' click to toggle source
# File lib/awesome_map_marker.rb, line 17
def self.generate(type: :fas,
                  name: 'fa-map-marker-alt',
                  size: 128,
                  fill_color: '#e45340')

  size = 1024 if size > 1024
  return nil if size <= 0

  font_image = FontAwesome.generate(type: type, name: name, size: size * 0.6)
  return nil if font_image.nil?

  tmp_file = Tempfile.new(%w[icon .png])
  tmp_file.close

  MiniMagick::Tool::Convert.new do |magick|
    magick << File.expand_path('../app/assets/images/icon-base.png', __dir__)
    magick.resize("#{size}x#{size}")
    magick.fuzz '100%'
    magick.fill fill_color
    magick.opaque '#0000FF'
    magick << tmp_file.path
  end

  base_image = MiniMagick::Image.open(tmp_file.path)

  tmp_file.unlink
  base_image.composite(font_image) do |composite|
    composite.compose 'over'
    composite.gravity 'center'
    composite.geometry "+0-#{size * 0.04}"
  end
end