class GraphImageDrawerChunky

Public Instance Methods

axis(x_array, y_array, _options = { :color => 'black', :width => 1 }, render_labels = false, x_labels = [], y_labels = []) click to toggle source

Draw both array axis

# File lib/technical_graph/graph_image_drawer_chunky.rb, line 17
def axis(x_array, y_array, _options = { :color => 'black', :width => 1 }, render_labels = false, x_labels = [], y_labels = [])
  # for single axis
  x_array = [x_array] if not x_array.kind_of? Array
  y_array = [y_array] if not y_array.kind_of? Array

  x_array.each_with_index do |x, i|
    @image.line(x, 0, x, height, ChunkyPNG::Color.from_hex(_options[:color]))

    # labels
    # chunky_png probably can't write text

    #label = x_labels[i]
    #if render_labels and not label.nil?
    #  label = "#{truncate_string % label}"
    #  plot_axis_text.text(x + 15, height - 15, label)
    #end
  end

  y_array.each_with_index do |y, i|
    @image.line(0, y, width, y, ChunkyPNG::Color.from_hex(_options[:color]))

    # labels
    #label = y_labels[i]
    #if render_labels and not label.nil?
    #  label = "#{truncate_string % label}"
    #  plot_axis_text.text(15, y + 15, label)
    #end
  end

end
axis_labels(parameter_label, value_label, _options = { :color => 'black', :width => 1, :size => 20 }) click to toggle source

Label for parameters and values

# File lib/technical_graph/graph_image_drawer_chunky.rb, line 49
def axis_labels(parameter_label, value_label, _options = { :color => 'black', :width => 1, :size => 20 })
  # chunky_png probably can't write text

  #if options[:x_axis_label].to_s.size > 0
  #  plot = axis_labels_draw_object
  #  plot.stroke(_options[:color])
  #  plot.stroke_width(_options[:width])
  #
  #  plot.text(
  #    (width / 2).to_i,
  #    height - 40,
  #    options[:x_axis_label].to_s
  #  )
  #  plot.draw(@image)
  #end
  #
  #
  #if options[:y_axis_label].to_s.size > 0
  #  plot = axis_labels_draw_object
  #  plot.stroke(_options[:color])
  #  plot.stroke_width(_options[:width])
  #  plot = plot.rotate(90)
  #
  #  plot.text(
  #    (height / 2).to_i,
  #    -40,
  #    options[:y_axis_label].to_s
  #  )
  #  plot.draw(@image)
  #end
end
close() click to toggle source
# File lib/technical_graph/graph_image_drawer_chunky.rb, line 131
def close
  # only for compatibility
  @closed = true
end
closed?() click to toggle source
# File lib/technical_graph/graph_image_drawer_chunky.rb, line 136
def closed?
  @closed
end
create_blank_image() click to toggle source

Initialize blank image

# File lib/technical_graph/graph_image_drawer_chunky.rb, line 12
def create_blank_image
  @image = ChunkyPNG::Image.new(width, height, ChunkyPNG::Color::WHITE)
end
legend(legend_data) click to toggle source
# File lib/technical_graph/graph_image_drawer_chunky.rb, line 109
def legend(legend_data)
  # chunky_png probably can't write text

  #legend_text_offset = (options[:legend_font_size] / 2.0).round - 4
  #
  #legend_data.each do |l|
  #  plot = axis_draw_object
  #  plot_text = layer_no_stroke(plot)
  #
  #  plot.fill(l[:color])
  #  plot.stroke(l[:color])
  #  plot_text.fill(l[:color])
  #  plot_text.pointsize(options[:legend_font_size])
  #
  #  plot.circle(l[:x], l[:y], l[:x] + 2, l[:y])
  #  plot_text.text(l[:x] + 5, l[:y] + legend_text_offset, l[:label])
  #
  #  plot.draw(@image)
  #  plot_text.draw(@image)
  #end
end
render_data_layer(l, coords) click to toggle source
# File lib/technical_graph/graph_image_drawer_chunky.rb, line 81
def render_data_layer(l, coords)
  # chunky_png probably can't write text

  ## value labels
  #if l.value_labels
  #  plot = layer_no_stroke(layer_value_labels_draw_object(l))
  #  coords.each do |c|
  #    string_label = "#{truncate_string % c[:dy]}"
  #    plot.text(
  #      c[:ax] + 5, c[:ay],
  #      string_label
  #    )
  #  end
  #  plot.draw(@image)
  #end

  # lines and dots
  coords.each do |c|
    # additional circle
    #plot.circle(c[:ax], c[:ay], c[:ax] + 2, c[:ay])
    #plot.circle(c[:bx], c[:by], c[:bx] + 2, c[:by])

    # line
    @image.line(c[:ax], c[:ay], c[:bx], c[:by], ChunkyPNG::Color.from_hex(l.color))
  end
end
save(file) click to toggle source

Save output to file

# File lib/technical_graph/graph_image_drawer_chunky.rb, line 141
def save(file)
  t = Time.now

  @image.save(file)

  logger.debug "saving image"
  logger.debug " TIME COST #{Time.now - t}"
end
to_format(format) click to toggle source

Export image

# File lib/technical_graph/graph_image_drawer_chunky.rb, line 151
def to_format(format)
  t = Time.now
  blob = @image.to_blob

  logger.debug "exporting image as string"
  logger.debug " TIME COST #{Time.now - t}"

  return blob
end