class Inch::Badge::Image::PNG

Public Instance Methods

save() click to toggle source
# File lib/inch/badge/image/png.rb, line 7
def save
  base_image = ChunkyPNG::Image.from_file( Config.image_path('bg.png') )

  x = 0
  @grades.each do |grade|
    grade.width.times do |i|
      if x < grade.section_width
        badge  = load_image( Config.image_path("grade-#{grade.name}-#{grade.prefix(x)}.png") )
        base_image.compose!(badge, 34+x, 0)
      end
      x += 1
    end
  end

  base_image.save(@filename, :fast_rgba)
end

Private Instance Methods

load_image(filename) click to toggle source
# File lib/inch/badge/image/png.rb, line 26
def load_image(filename)
  @cache ||= {}
  @cache[filename] ||= ChunkyPNG::Image.from_file(filename)
  @cache[filename]
end