escpos-image 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a9b0ee34ebffb71648d1f88d9393ef8691655398
4
+ data.tar.gz: 93c058d21c06840560942e325aec82a54ca57a9e
5
+ SHA512:
6
+ metadata.gz: c2431794b2c3d3847ae4f6b085ede7b8287abdaadad9037f1b633e875b92325064135d7a24334f7a626d51a2e0ed09bda7b7431d215fcb072e7fb333ff65af46
7
+ data.tar.gz: 4a7c21beb08c0bfe494792b327d5121933f1dc19debde67b5cd31efac962a2d13673363411025052015e79697fc34e2c7e193bc4de0dbc0782ca4aefa19552aa
data/.gitignore ADDED
@@ -0,0 +1,69 @@
1
+ # Compiled source #
2
+ ###################
3
+ *.com
4
+ *.class
5
+ *.dll
6
+ *.exe
7
+ *.o
8
+ *.so
9
+
10
+ # Packages #
11
+ ############
12
+ # it's better to unpack these files and commit the raw source
13
+ # git has its own built in compression methods
14
+ *.7z
15
+ *.dmg
16
+ *.gz
17
+ *.iso
18
+ *.jar
19
+ *.rar
20
+ *.tar
21
+ *.zip
22
+
23
+ # Logs and databases #
24
+ ######################
25
+ *.log
26
+ *.sql
27
+ *.sqlite
28
+ *.sqlite3
29
+
30
+ # OS generated files #
31
+ ######################
32
+ .DS_Store
33
+ .DS_Store?
34
+ ._*
35
+ .Spotlight-V100
36
+ .Trashes
37
+ ehthumbs.db
38
+ Thumbs.db
39
+
40
+ # Rails
41
+ *.rbc
42
+ *.sassc
43
+ .sass-cache
44
+ capybara-*.html
45
+ .rspec
46
+ /log
47
+ /tmp
48
+ /db/*.sqlite3
49
+ /public/system
50
+ /coverage/
51
+ /spec/tmp
52
+ **.orig
53
+ rerun.txt
54
+ pickle-email-*.html
55
+ config/initializers/secret_token.rb
56
+ config/secrets.yml
57
+
58
+ ## Environment normalisation:
59
+ /.bundle
60
+ /vendor/bundle
61
+
62
+ # these should all be checked in to normalise the environment:
63
+ # Gemfile.lock, .ruby-version, .ruby-gemset
64
+
65
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
66
+ .rvmrc
67
+
68
+ pkg/*
69
+ Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in escpos-image.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,47 @@
1
+ # Escpos-image
2
+
3
+ A ruby implementation of ESC/POS (thermal) printer image command specification.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'escpos-image'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install escpos-image
20
+
21
+ ## Usage
22
+
23
+ ```ruby
24
+ @printer = Escpos::Printer.new
25
+
26
+ image = Escpos::Image.new 'path/to/image.png'
27
+ # to use automatic conversion to monochrome format (requires mini_magick gem) use:
28
+ image = Escpos::Image.new 'path/to/image.png', convert_to_monochrome: true
29
+
30
+ @printer.write image.to_escpos
31
+
32
+ @printer.to_escpos # returns ESC/POS data ready to be sent to printer
33
+ # on linux this can be piped directly to /dev/usb/lp0
34
+ # with network printer sent directly to printer socket
35
+ # with serial port printer it can be sent directly to the serial port
36
+
37
+ @printer.to_base64 # returns base64 encoded ESC/POS data
38
+
39
+ ## Contributing
40
+
41
+ Bug reports and pull requests are welcome on GitHub at https://github.com/escpos/escpos-image.
42
+
43
+ 1. Fork it ( https://github.com/escpos/escpos-image/fork )
44
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
45
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
46
+ 4. Push to the branch (`git push origin my-new-feature`)
47
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "escpos/image"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'escpos/image'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "escpos-image"
8
+ spec.version = Escpos::Image::VERSION
9
+ spec.authors = ["Jan Svoboda"]
10
+ spec.email = ["jan@mluv.cz"]
11
+ spec.summary = %q{A ruby implementation of ESC/POS (thermal) printer image command specification.}
12
+ spec.description = %q{A ruby implementation of ESC/POS (thermal) printer image command specification.}
13
+ spec.homepage = "https://github.com/escpos/escpos-image"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.required_ruby_version = ">= 1.9"
22
+
23
+ spec.add_development_dependency "bundler"
24
+ spec.add_development_dependency "rake"
25
+
26
+ spec.add_development_dependency "minitest", "~> 5.4.2"
27
+
28
+ spec.add_dependency "escpos"
29
+ spec.add_dependency "chunky_png"
30
+ end
@@ -0,0 +1,9 @@
1
+ module Escpos
2
+ module Helpers
3
+
4
+ def image(path, opts = {})
5
+ Image.new(path, opts).to_escpos
6
+ end
7
+
8
+ end
9
+ end
@@ -0,0 +1,84 @@
1
+ module Escpos
2
+ class Image
3
+
4
+ VERSION = "0.0.1"
5
+
6
+ def initialize(image_path, opts = {})
7
+ if opts.fetch(:convert_to_monochrome, false)
8
+ require_mini_magick!
9
+ image = convert_to_monochrome(image_path, opts)
10
+ @image = ChunkyPNG::Image.from_file(image.path)
11
+ else
12
+ @image = ChunkyPNG::Image.from_file(image_path)
13
+ end
14
+
15
+ unless @image.width % 8 == 0 && @image.height % 8 == 0
16
+ raise ArgumentError.new("Image width and height must be a multiple of 8.")
17
+ end
18
+ end
19
+
20
+ def to_escpos
21
+ bits = []
22
+ mask = 0x80
23
+ i = 0
24
+ temp = 0
25
+
26
+ 0.upto(@image.height - 1) do |y|
27
+ 0.upto(@image.width - 1) do |x|
28
+ r, g, b, a =
29
+ ChunkyPNG::Color.r(@image[x, y]),
30
+ ChunkyPNG::Color.g(@image[x, y]),
31
+ ChunkyPNG::Color.b(@image[x, y]),
32
+ ChunkyPNG::Color.a(@image[x, y])
33
+ px = (r + g + b) / 3
34
+ raise ArgumentError.new("PNG images with alpha are not supported.") unless a == 255
35
+ value = px > 128 ? 255 : 0
36
+ value = (value << 8) | value
37
+ temp |= mask if value == 0
38
+ mask = mask >> 1
39
+ i = i + 1
40
+ if i == 8
41
+ bits << temp
42
+ mask = 0x80
43
+ i = 0
44
+ temp = 0
45
+ end
46
+ end
47
+ end
48
+
49
+ [
50
+ Escpos.sequence(IMAGE),
51
+ [@image.width / 8, @image.height ].pack("SS"),
52
+ bits.pack("C*")
53
+ ].join
54
+ end
55
+
56
+ private
57
+
58
+ def require_mini_magick!
59
+ unless defined?(MiniMagick)
60
+ begin
61
+ require 'mini_magick'
62
+ rescue LoadError => e
63
+ raise 'Required options need the mini_magick gem installed.'
64
+ end
65
+ end
66
+ end
67
+
68
+ def convert_to_monochrome(image_path, opts = {})
69
+ image = MiniMagick::Image.open(image_path)
70
+ image.flatten
71
+ image.grayscale 'Rec709Luma'
72
+ if opts.fetch(:dither, true)
73
+ image.monochrome
74
+ else
75
+ image.monochrome '+dither'
76
+ end
77
+ if opts.fetch(:extent, true)
78
+ image.extent "#{(image.width/8.0).round*8}x#{(image.height/8.0).round*8}"
79
+ end
80
+ image
81
+ end
82
+
83
+ end
84
+ end
Binary file
Binary file
@@ -0,0 +1,30 @@
1
+ require_relative '../../test_helper'
2
+
3
+ class TestPrinter < Minitest::Test
4
+ def setup
5
+ @printer = Escpos::Printer.new
6
+ end
7
+
8
+ def test_image
9
+ image_path = File.join(__dir__, '../../fixtures/tux_mono.png')
10
+ image = Escpos::Image.new image_path
11
+
12
+ @printer.write image.to_escpos
13
+ @printer.write "\n" * 10
14
+ @printer.cut!
15
+ #pp @printer.to_base64
16
+ assert_equal @printer.to_base64, 'G0AddjAAEACYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//gAAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAD////gAAAAAAAAAAAAAAAB////+AAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAf////+AAAAAAAAAAAAAAAP/////gAAAAAAAAAAAAAAH/////8AAAAAAAAAAAAAAB//////gAAAAAAAAAAAAAA//////4AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAH//////wAAAAAAAAAAAAAB//////8AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAP//////4AAAAAAAAAAAAAD//////+AAAAAAAAAAAAAA///////gAAAAAAAAAAAAAP//////8AAAAAAAAAAAAAD///////AAAAAAAAAAAAAA////D//wAAAAAAAAAAAAAP///Af/8AAAAAAAAAAAAAH4P/gB//AAAAAAAAAAAAAB8B/wAf/wAAAAAAAAAAAAAfAP8AD/8AAAAAAAAAAAAAHgD+AA//AAAAAAAAAAAAAB4AfgwH/4AAAAAAAAAAAAAeEHweB/+AAAAAAAAAAAAAHjh8Hwf/gAAAAAAAAAAAAA58fD8H/4AAAAAAAAAAAAAOfHw/B/+AAAAAAAAAAAAADnx+Pwf/gAAAAAAAAAAAAA5/w/8H/4AAAAAAAAAAAAAOPgB/B/+AAAAAAAAAAAAADjwAHw//gAAAAAAAAAAAAA8YAAcP/4AAAAAAAAAAAAAPsAAB//+AAAAAAAAAAAAAD8AAAD//gAAAAAAAAAAAAA+AAAAP/4AAAAAAAAAAAAAPAAAAB/+AAAAAAAAAAAAADgAAAAf/gAAAAAAAAAAAAAwAAADH/4AAAAAAAAAAAAAMwAADh/+AAAAAAAAAAAAAHmAABgf/gAAAAAAAAAAAAB4wABgP/4AAAAAAAAAAAAAfDABgH//AAAAAAAAAAAAAH4cBgDP/wAAAAAAAAAAAAB/g/gDD/+AAAAAAAAAAAAA/MAADA//gAAAAAAAAAAAAPwgADAH/8AAAAAAAAAAAAD8EADAB//AAAAAAAAAAAAB/AwBgAf/4AAAAAAAAAAAAfwDDgAD/+AAAAAAAAAAAAP4AAAAA//wAAAAAAAAAAAD+AAAAAP/+AAAAAAAAAAAB/gAAAAB//gAAAAAAAAAAAf4AAAAAf/8AAAAAAAAAAAP8AAAAAH//gAAAAAAAAAAH/AAAAAA//8AAAAAAAAAAD/wAAAAAP//gAAAAAAAAAA/4AAAAAB//4AAAAAAAAAAf+AAAAAAf//AAAAAAAAAAP/gAAAAAH//4AAAAAAAAAH/wAAAAAA///AAAAAAAAAD/8AAAAAAP//4AAAAAAAAA//AAAAAAB//+AAAAAAAAAf/gAAAAAAff/wAAAAAAAAP/4AAAAAAH7/+AAAAAAAAD/8AAAAAAA/f/gAAAAAAAB//AAAAAAAP7/8AAAAAAAA/vgAAAAAAB/f/gAAAAAAAP34AAAAAAAfz/4AAAAAAAH98AAAAAAAD+//AAAAAAAB+/AAAAAAAA/3/wAAAAAAA/vwAAAAAAAH8/+AAAAAAAP34AAAAAAAB/v/gAAAAAAH9+AAAAAAAAP5/8AAAAAAD+/AAAAAAAAD+f/AAAAAAA/vwAAAAAAAAfz/4AAAAAAfz4AAAAAAAAH8/+AAAAAAH9+AAAAAAAAA/P/wAAAAAB+fAAAAAAAAAP5/8AAAAAA/nwAAAAAAAAD+f/AAAAAAP78AAAAAAAAAfn/4AAAAAH8+AAAAAAAAAH5/+AAAAAB/PgAAAAAAAAB+f/gAAAAAfz4AAAAAAAAAPj/4AAAAAP88AAAAAAAAAD4//AAAAAD/PAAAAAAAAAA+P/wAAAAA/jwAAAAAAAAAHj/8AAAAAP48AAAAAAAAABx//AAAAAH+PAAAAAAAAAAMf/wAAAAB/zgAAAAAAAAAAH/8AAAAAf8YAAAAAAAAAAA//AAAAAH/GAAAAAAAAAA8D/wAAAAB/wgAAAAAAAAA54P8AAAAAf+IAAAAAAAAAIDx/AAAAAH/gAAAAAAAAAGAOPwAAAAB/8AAAAAAAAABAB58AAAAAf/AAAAAAAAAAwAPPAAAAAH/4AAAAAAAAAcADzwAAAAB//AAAAAAAAAfAAc4AAAAA4H4AAAAAAAAGYAPuAAAAAcAfAAAAAAAADGAD/gAAAAGAD8AAAAAAAAxgB/8AAAADAA/gAAAAAAAYMB+DwAAABgAH+AAAAAAAGDx/AMAAAA4AA/wAAAAAABgf/gBgAAAcAAH/AAAAAAAwD/gAYAAAeAAB/4AAAAAAMAfgADAAA+AAAP/AAAAAADAAAAAwAA+AAAD/4AAAAAAwAAAAMAAcAAAAf/AAAAAAMAAAABAAOAAAAH/4AAAAADAAAAAYADAAAAA/+AAAAAAwAAAAGABgAAAAP/wAAAAAMAAAABgAYAAAAB/8AAAAAGAAAAAMAGAAAAAf/gAAAABgAAAADABgAAAAD/4AAAAAYAAAAAYAYAAAAA/+AAAAAGAAAAADAGAAAAAH/gAAAABgAAAAA4BgAAAAA/wAAAAAYAAAAAGAYAAAAAH4AAAAAGAAAAAAwDAAAAAB4AAAAADgAAAAAMAwAAAAAOAAAAAAwAAAAABgMAAAAABgAAAAAMAAAAAAYDAAAAAAMAAAAADAAAAAAGBgAAAAABgAAAABgAAAAADgYAAAAAAcAAAAA4AAAAAAwGAAAAAADAAAAA+AAAAAA4BgAAAAAAcAAAA/gAAAAAcAwAAAAAAHwAAA/wAAAAAcAMAAAAAAA/AAB/8AAAAAcADAAAAAAAP/AH//AAAAAcAAwAAAAAAD/////wAAAAcAAOAAAAAAAf////8AAAAeAABgAAAAAAH////+AAAAOAAAMAAAAAAB/////gAAAGAAAB8AAAAAA/////4AAADAAAAH/wAAAAP/gAf/AAABgAAAAH/4AAAD4AAAAwAAAwAAAAAAfgAABgAAAAMAAAYAAAAAAAfAAA4AAAABgAAMAAAAAAAB8AAcAAAAAcAAOAAAAAAAAH4AeAAAAADAAHAAAAAAAAAP/+AAAAAAcAHgAAAAAAAAAf+AAAAAADwPgAAAAAAAAAAAAAAAAAAf/gAAAAAAAAAAAAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAACgoKCgoKCgoKCh1WAA=='
17
+ end
18
+
19
+ def test_image_conversion
20
+ image_path = File.join(__dir__, '../../fixtures/tux_alpha.png')
21
+ image = Escpos::Image.new image_path, convert_to_monochrome: true
22
+
23
+ @printer.write image.to_escpos
24
+ @printer.write "\n" * 10
25
+ @printer.cut!
26
+ #pp @printer.to_base64
27
+ assert_equal @printer.to_base64, 'G0AddjAAEACYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAH//+AAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAP////AAAAAAAAAAAAAAAAH////4AAAAAAAAAAAAAAAB/////AAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf/////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAB//////gAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////4AAAAAAAAAAAAAA//////+AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB//////+AAAAAAAAAAAAAA///////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAD///8H//AAAAAAAAAAAAAAfn/8A//wAAAAAAAAAAAAAPwf+AH/8AAAAAAAAAAAAAB4D/AA//gAAAAAAAAAAAAAcAfwAP/4AAAAAAAAAAAAAPAH8GB/8AAAAAAAAAAAAADwB/Dwf/AAAAAAAAAAAAAAY8Ph8H/4AAAAAAAAAAAAAPHj4/g/+AAAAAAAAAAAAADj4+P4f/AAAAAAAAAAAAAA4+Pj+D/4AAAAAAAAAAAAAHPue/h/8AAAAAAAAAAAAABz8Af4f/AAAAAAAAAAAAAAeeAB8P/4AAAAAAAAAAAAAHiAAHD/+AAAAAAAAAAAAAB/gAAe//AAAAAAAAAAAAAAfgAAA//wAAAAAAAAAAAAAHwAAAD/+AAAAAAAAAAAAABwAAAAf/gAAAAAAAAAAAAAcAAAAH/4AAAAAAAAAAAAAHQAAA4/+AAAAAAAAAAAAADmAAAYf/gAAAAAAAAAAAAA8wAA4H/4AAAAAAAAAAAAAPGAAID//AAAAAAAAAAAAAD44AcB//wAAAAAAAAAAAAA/B08Bj/8AAAAAAAAAAAAAP4LwAw//gAAAAAAAAAAAAH5wAB4H/4AAAAAAAAAAAAB+EAAgB//AAAAAAAAAAAAA/gwA4Af/wAAAAAAAAAAAAP4GAwAH/+AAAAAAAAAAAAH+A/wAA//wAAAAAAAAAAAB/AAgAAP/8AAAAAAAAAAAAfwAAAAD//gAAAAAAAAAAAP8AAAAAf/8AAAAAAAAAAAH+AAAAAH//gAAAAAAAAAAD/gAAAAA//4AAAAAAAAAAA/4AAAAAP//AAAAAAAAAAAf+AAAAAD//4AAAAAAAAAAP/AAAAAAf//AAAAAAAAAAH/wAAAAAH//4AAAAAAAAAD/4AAAAAA//+AAAAAAAAAA/+AAAAAAP//wAAAAAAAAAf/gAAAAAB//+AAAAAAAAAP/wAAAAAAff/wAAAAAAAAD/8AAAAAAH7/8AAAAAAAAB/+AAAAAAA/f/gAAAAAAAA/fgAAAAAAP7/8AAAAAAAAP/4AAAAAAB/f/AAAAAAAAH78AAAAAAAf7/4AAAAAAAD+/AAAAAAAD+/+AAAAAAAA/fgAAAAAAA/n/wAAAAAAAf/4AAAAAAAH9/+AAAAAAAH78AAAAAAAB///gAAAAAAD//AAAAAAAAP7/8AAAAAAA/PgAAAAAAAD+f/AAAAAAAf/4AAAAAAAAf3/wAAAAAAH58AAAAAAAAH9/+AAAAAAD+/AAAAAAAAB/P/gAAAAAA/vwAAAAAAAAP7/8AAAAAAfz4AAAAAAAAD+//AAAAAAH9+AAAAAAAAAfn/wAAAAAB/PgAAAAAAAAH5/+AAAAAA/3wAAAAAAAAB+f/gAAAAAP98AAAAAAAAAfn/4AAAAAH+fAAAAAAAAAD5/+AAAAAB/ngAAAAAAAAA+f/gAAAAAf54AAAAAAAAAPH/8AAAAAH+eAAAAAAAAADx/+AAAAAD/jgAAAAAAAAAA//wAAAAA/54AAAAAAAAAAH/8AAAAAH/MAAAAAAAAACof+AAAAAD/xAAAAAAAAAD/D/wAAAAA/8YAAAAAAAAAx+P8AAAAAP/EAAAAAAAAAYD5/AAAAAD/4AAAAAAAAAEAPPgAAAAA//AAAAAAAAADAB58AAAAAP/wAAAAAAAABwAPeAAAAAD/+AAAAAAAAB8AD3gAAAAA4P4AAAAAAAAZgA94AAAAAYB+AAAAAAAAMYAf8AAAAAOAH4AAAAAAADGAP/wAAAAHAA/gAAAAAABgwH6eAAAABgAP8AAAAAAAYOH8BwAAABwAB/gAAAAAAOD/8AMAAAAYAAP+AAAAAABAP+ABgAAA+AAD/gAAAAAAwB+AAYAAA+AAAf+AAAAAAMAAAAGAAA+AAAH/wAAAAADAAAAAwAAcAAAA/+AAAAAAwAAAAMAAOAAAAP/wAAAAAMAAAADAADAAAAB/8AAAAAHAAAAAwABgAAAAf/gAAAAAwAAAAGAAYAAAAD/4AAAAAYAAAABgAGAAAAA/+AAAAAHAAAAAcABgAAAAH/wAAAAAgAAAADgAYAAAAA/8AAAAAYAAAAAYAGAAAAAP/AAAAAGAAAAADABgAAAAB/gAAAABgAAAAAYAYAAAAAPwAAAAAYAAAAAGAGAAAAABwAAAAAMAAAAABwAwAAAAAcAAAAADAAAAAAMAIAAAAADgAAAAAwAAAAADAHAAAAAAYAAAAAcAAAAAAwBgAAAAADAAAAAGAAAAAAYAYAAAAAA4AAAAHgAAAAAOAGAAAAAAHAAAAH4AAAAAHADgAAAAAA8AAAH8AAAAAPgAwAAAAAAPwAAP/AAAAAHgAMAAAAAAB/wCf/wAAAAPgADAAAAAAAf////8AAAAHgAAwAAAAAAD/////AAAAHgAAGAAAAAAB/////gAAAHgAABwAAAAAAP////8AAABwAAAPgAAAAAH////+AAABwAAAA/+AAAAB/9qf/wAAA4AAAAB//AAAAfgAAGsAAAcAAAAAAH+AAAOAAAADAAAGAAAAAAAH4AAHAAAAAYAAHAAAAAAAAHgABgAAAAHAADgAAAAAAAA+ADwAAAAAwABwAAAAAAAAB/v4AAAAAHABwAAAAAAAAAH/4AAAAAA8B4AAAAAAAAAABAAAAAAAH/4AAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKCgoKCgoKCh1WAA=='
28
+ end
29
+
30
+ end
@@ -0,0 +1,9 @@
1
+ #$VERBOSE = true
2
+
3
+ require 'minitest/autorun'
4
+ #require 'minitest/pride'
5
+ require 'pp'
6
+
7
+ require 'escpos'
8
+ require 'chunky_png'
9
+ require File.expand_path('../../lib/escpos/image.rb', __FILE__)
metadata ADDED
@@ -0,0 +1,134 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: escpos-image
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jan Svoboda
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-06-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 5.4.2
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 5.4.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: escpos
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: chunky_png
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: A ruby implementation of ESC/POS (thermal) printer image command specification.
84
+ email:
85
+ - jan@mluv.cz
86
+ executables:
87
+ - console
88
+ - setup
89
+ extensions: []
90
+ extra_rdoc_files: []
91
+ files:
92
+ - ".gitignore"
93
+ - Gemfile
94
+ - README.md
95
+ - Rakefile
96
+ - bin/console
97
+ - bin/setup
98
+ - escpos-image.gemspec
99
+ - lib/escpos/helpers.rb
100
+ - lib/escpos/image.rb
101
+ - test/fixtures/tux_alpha.png
102
+ - test/fixtures/tux_mono.png
103
+ - test/lib/escpos/image_test.rb
104
+ - test/test_helper.rb
105
+ homepage: https://github.com/escpos/escpos-image
106
+ licenses:
107
+ - MIT
108
+ metadata: {}
109
+ post_install_message:
110
+ rdoc_options: []
111
+ require_paths:
112
+ - lib
113
+ required_ruby_version: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '1.9'
118
+ required_rubygems_version: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ requirements: []
124
+ rubyforge_project:
125
+ rubygems_version: 2.5.1
126
+ signing_key:
127
+ specification_version: 4
128
+ summary: A ruby implementation of ESC/POS (thermal) printer image command specification.
129
+ test_files:
130
+ - test/fixtures/tux_alpha.png
131
+ - test/fixtures/tux_mono.png
132
+ - test/lib/escpos/image_test.rb
133
+ - test/test_helper.rb
134
+ has_rdoc: