Sha256: 41f86c0729d6fe27ea695fe2a2be8fee0e73d6ec8d5fdbb61fff05ae4915eaab

Contents?: true

Size: 1.2 KB

Versions: 4

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

module Gruff
  class Renderer::Text
    def initialize(text, args = {})
      @text = text.to_s
      @font = args[:font]
      @font_size = args[:size]
      @font_color = args[:color]
      @font_weight = args[:weight] || Magick::NormalWeight
      @rotation = args[:rotation]
    end

    def render(width, height, x, y, gravity = Magick::NorthGravity)
      draw  = Renderer.instance.draw
      image = Renderer.instance.image
      scale = Renderer.instance.scale

      draw.rotation = @rotation if @rotation
      draw.fill = @font_color
      draw.stroke = 'transparent'
      draw.font = @font if @font
      draw.font_weight = @font_weight
      draw.pointsize = @font_size * scale
      draw.gravity = gravity
      draw.annotate_scaled(image,
                           width, height,
                           x, y,
                           @text, scale)
      draw.rotation = -@rotation if @rotation
    end

    def self.metrics(text, size, font_weight = Magick::NormalWeight)
      draw  = Renderer.instance.draw
      image = Renderer.instance.image

      draw.font_weight = font_weight
      draw.pointsize = size
      draw.get_type_metrics(image, text.to_s)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
gruff-0.10.0 lib/gruff/renderer/text.rb
gruff-0.10.0-java lib/gruff/renderer/text.rb
gruff-0.9.0 lib/gruff/renderer/text.rb
gruff-0.9.0-java lib/gruff/renderer/text.rb