qrscanner 0.4 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
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