qrscanner 0.4 → 0.4.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.
data/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
+ v0.4.1. Add additional passes for problematic scans
2
+
1
3
  v0.4. Better handling of scanned documents with multiple passes
2
4
 
3
5
  v0.3.1. Released for rubygems
@@ -13,28 +13,32 @@ void Init_qrscanner();
13
13
  VALUE method_decode(VALUE self, VALUE fn);
14
14
 
15
15
  void Init_qrscanner() {
16
- QrScanner = rb_define_module("QrScanner");
17
- rb_define_singleton_method(QrScanner, "decode", method_decode, 1);
16
+ QrScanner = rb_define_module("QrScanner");
17
+ rb_define_singleton_method(QrScanner, "decode", method_decode, 1);
18
18
  }
19
19
 
20
20
  VALUE method_decode(VALUE self, VALUE fn) {
21
- VALUE ret;
22
- char *str = NULL;
23
- int dpis[] = {0, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 220, 240, 260, 280, 300, 450};
24
- int blurs[] = {0, 2, 4, 6, 8, 10, 15, 20, 50};
25
- int dpi, blur;
26
-
27
- for(blur=0; !str && blur<9; blur++) {
28
- for(dpi=0; !str && dpi<11; dpi++) {
29
- str = decode_qr_image(StringValuePtr(fn), dpis[dpi], blurs[blur]);
30
- }
31
- }
32
- if(!str)
33
- return Qnil;
21
+ VALUE ret;
22
+ char *str = NULL;
23
+ int dpis[] = {0, 40, 50, 60, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 210, 220, 230, 240, 250, 260, 280, 300, 450};
24
+ int blurs[] = {0, 2, 4, 6, 8, 10, 15, 20, 50};
25
+ int num_dpis, num_blurs, dpi, blur;
26
+
27
+ num_dpis = sizeof(dpis) / sizeof(*dpis);
28
+ num_blurs = sizeof(blurs) / sizeof(*blurs);
29
+
30
+ for(blur=0; !str && blur<num_blurs; blur++) {
31
+ for(dpi=0; !str && dpi<num_dpis; dpi++) {
32
+ /*printf("dpi=%d, blur=%d\n", dpis[dpi], blurs[blur]);*/
33
+ str = decode_qr_image(StringValuePtr(fn), dpis[dpi], blurs[blur]);
34
+ }
35
+ }
36
+ if(!str)
37
+ return Qnil;
34
38
 
35
- ret = rb_str_new2(str);
36
- free(str);
37
- return(ret);
39
+ ret = rb_str_new2(str);
40
+ free(str);
41
+ return(ret);
38
42
  }
39
43
 
40
44
  //}
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{qrscanner}
5
- s.version = "0.4"
5
+ s.version = "0.4.1"
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-07-27}
9
+ s.date = %q{2011-09-14}
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}
metadata CHANGED
@@ -5,7 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 4
8
- version: "0.4"
8
+ - 1
9
+ version: 0.4.1
9
10
  platform: ruby
10
11
  authors:
11
12
  - Andrew Snow
@@ -13,7 +14,7 @@ autorequire:
13
14
  bindir: bin
14
15
  cert_chain: []
15
16
 
16
- date: 2011-07-27 00:00:00 +10:00
17
+ date: 2011-09-14 00:00:00 +10:00
17
18
  default_executable:
18
19
  dependencies: []
19
20