qrscanner 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,2 +1,4 @@
1
1
 
2
+ v0.2. Choose better binarizer, ignore non-QR barcodes, override DPI
3
+
2
4
  v0.1. initial commit
data/README CHANGED
@@ -12,24 +12,31 @@ Usage
12
12
 
13
13
  Example:
14
14
 
15
+ First, gem install 'qrscanner'
16
+
15
17
  require 'qrscanner'
16
18
 
17
19
  QrScanner.decode '/path/to/hellworld.png'
18
20
  => "Hello, world"
19
21
 
20
22
  The parameter accepts any image format that ImageMagick supports, which
21
- should include PDFs for scanned documents.
23
+ should include PDF for scanned documents as well as PNG/JPG/TIFF/etc.
22
24
 
23
25
  Returns nil if it can't find a qr code or other error.
24
26
 
25
27
 
28
+
26
29
  Dependencies
27
30
  ------------
28
31
 
29
32
  * Python (for ZXing build script)
30
- * ImageMagick
33
+ * ImageMagick: libMagick++, libMagickWand, libMagickCore
31
34
  * gcc, g++, libstd++
35
+ * Operating system with a PREFIX of "/usr".
32
36
 
37
+ This last one means it really only works on Linux eg. Ubuntu, and not OSX or
38
+ BSD, because the ZXing CPP build script has hard coded paths for include
39
+ files etc. :-(
33
40
 
34
41
 
35
42
 
data/Rakefile CHANGED
@@ -5,5 +5,6 @@ Echoe.new("qrscanner") do |p|
5
5
  p.email = 'andrew@modulus.org'
6
6
  p.summary = "Ruby gem QR code scanner based on ZXing"
7
7
  p.url = "http://github.com/andys/qrscanner"
8
- p.ignore_pattern = /^pkg|^doc|^\.svn|^\.git/
8
+ # p.ignore_pattern = /^pkg|^doc|^\.svn|^\.git/
9
+ p.ignore_pattern = /^(pkg|doc)|(\.svn|CVS|\.bzr|\.DS|\.git)$/
9
10
  end
@@ -28,7 +28,7 @@ typedef unsigned int DecodeHintType;
28
28
 
29
29
  class DecodeHints {
30
30
 
31
- private:
31
+ public:
32
32
 
33
33
  static const DecodeHintType BARCODEFORMAT_QR_CODE_HINT = 1 << BarcodeFormat_QR_CODE;
34
34
  static const DecodeHintType BARCODEFORMAT_DATA_MATRIX_HINT = 1 << BarcodeFormat_DATA_MATRIX;
@@ -68,6 +68,7 @@ extern "C" char *decode_qr_image(const char *fname) {
68
68
  const char* result_format = "";
69
69
 
70
70
  Image image;
71
+ image.density(Geometry(300,300)); // for PDFs or vector input with low, incorrect DPI set eg. some Canon scanners
71
72
  try {
72
73
  image.read(fname);
73
74
  } catch (...) {
@@ -79,10 +80,10 @@ extern "C" char *decode_qr_image(const char *fname) {
79
80
  try {
80
81
  Ref<MagickBitmapSource> source(new MagickBitmapSource(image));
81
82
 
82
- binarizer = new HybridBinarizer(source);
83
- // binarizer = new GlobalHistogramBinarizer(source);
83
+ // binarizer = new HybridBinarizer(source);
84
+ binarizer = new GlobalHistogramBinarizer(source);
84
85
 
85
- DecodeHints hints(DecodeHints::DEFAULT_HINT);
86
+ DecodeHints hints(DecodeHints::BARCODEFORMAT_QR_CODE_HINT /*DecodeHints::DEFAULT_HINT*/);
86
87
  hints.setTryHarder(tryHarder);
87
88
  Ref<BinaryBitmap> binary(new BinaryBitmap(binarizer));
88
89
  Ref<Result> result(decode(binary, hints));
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{qrscanner}
5
- s.version = "0.1"
5
+ s.version = "0.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Andrew Snow"]
9
- s.date = %q{2011-03-16}
9
+ s.date = %q{2011-04-05}
10
10
  s.default_executable = %q{qrscanner}
11
11
  s.description = %q{Ruby gem QR code scanner based on ZXing}
12
12
  s.email = %q{andrew@modulus.org}
@@ -18,11 +18,10 @@ Gem::Specification.new do |s|
18
18
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Qrscanner", "--main", "README"]
19
19
  s.require_paths = ["lib", "ext"]
20
20
  s.rubyforge_project = %q{qrscanner}
21
- s.rubygems_version = %q{1.3.7}
21
+ s.rubygems_version = %q{1.6.2}
22
22
  s.summary = %q{Ruby gem QR code scanner based on ZXing}
23
23
 
24
24
  if s.respond_to? :specification_version then
25
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
26
25
  s.specification_version = 3
27
26
 
28
27
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
metadata CHANGED
@@ -1,11 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qrscanner
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- version: "0.1"
4
+ prerelease:
5
+ version: "0.2"
9
6
  platform: ruby
10
7
  authors:
11
8
  - Andrew Snow
@@ -13,7 +10,7 @@ autorequire:
13
10
  bindir: bin
14
11
  cert_chain: []
15
12
 
16
- date: 2011-03-16 00:00:00 +11:00
13
+ date: 2011-04-05 00:00:00 +10:00
17
14
  default_executable:
18
15
  dependencies: []
19
16
 
@@ -1000,22 +997,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
1000
997
  requirements:
1001
998
  - - ">="
1002
999
  - !ruby/object:Gem::Version
1003
- segments:
1004
- - 0
1005
1000
  version: "0"
1006
1001
  required_rubygems_version: !ruby/object:Gem::Requirement
1007
1002
  none: false
1008
1003
  requirements:
1009
1004
  - - ">="
1010
1005
  - !ruby/object:Gem::Version
1011
- segments:
1012
- - 1
1013
- - 2
1014
1006
  version: "1.2"
1015
1007
  requirements: []
1016
1008
 
1017
1009
  rubyforge_project: qrscanner
1018
- rubygems_version: 1.3.7
1010
+ rubygems_version: 1.6.2
1019
1011
  signing_key:
1020
1012
  specification_version: 3
1021
1013
  summary: Ruby gem QR code scanner based on ZXing