class Escpos::Image

Constants

VERSION

Attributes

options[R]
processor[R]

Public Class Methods

new(image_or_path, options = {}) click to toggle source
# File lib/escpos/image.rb, line 17
def initialize(image_or_path, options = {})
  @options = options

  processor_klass_name = options.fetch(:processor)
  processor_klass = ImageProcessors.const_get(processor_klass_name)
  @processor = processor_klass.new image_or_path, options

  @processor.process!
end

Public Instance Methods

to_escpos() click to toggle source
# File lib/escpos/image.rb, line 27
def to_escpos
  bits = []
  mask = 0x80
  i = 0
  temp = 0

  0.upto(processor.image.height - 1) do |y|
    0.upto(processor.image.width - 1) do |x|
      px = processor.get_pixel(x, y)
      value = px >= 128 ? 255 : 0
      value = (value << 8) | value
      temp |= mask if value == 0
      mask = mask >> 1
      i = i + 1
      if i == 8
        bits << temp
        mask = 0x80
        i = 0
        temp = 0
      end
    end
  end

  [
    Escpos.sequence(IMAGE),
    [ processor.image.width / 8, processor.image.height ].pack("SS"),
    bits.pack("C*")
  ].join
end