zxing 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +6 -1
- data/bin/zxing +1 -0
- data/bin/zxing.compiled.rbc +390 -0
- data/lib/zxing.rb +34 -0
- data/lib/zxing.rbc +715 -0
- data/lib/zxing.rb~ +54 -0
- data/lib/zxing/client.rbc +967 -0
- data/lib/zxing/decodable.rb +8 -0
- data/lib/zxing/decodable.rbc +424 -0
- data/lib/zxing/decodable.rb~ +9 -0
- data/lib/zxing/decoder.rb +26 -1
- data/lib/zxing/decoder.rbc +2374 -0
- data/lib/zxing/version.rb +1 -1
- data/lib/zxing/version.rbc +130 -0
- data/spec/fixtures/multi_barcode_example.png +0 -0
- data/spec/spec_helper.rbc +233 -0
- data/spec/zxing/decodable_spec.rbc +1001 -0
- data/spec/zxing_spec.rb +56 -0
- data/spec/zxing_spec.rbc +4949 -0
- metadata +50 -11
data/README.rdoc
CHANGED
@@ -26,6 +26,11 @@ decodes a plethora of barcodes. Their site has a complete list.
|
|
26
26
|
# string" embedded:
|
27
27
|
ZXing.decode '/Users/ecin/qrcode.png' #=> "QRcode string"
|
28
28
|
|
29
|
+
# ZXing#decode_all returns an array of encoded values. For example if an
|
30
|
+
# image has a barcode encoded with the value "test123" and another barcode
|
31
|
+
# encoded with the value "test456":
|
32
|
+
ZXing.decode_all 'image_with_multiple_barcodes.png' #=> ["test456", "test123"]
|
33
|
+
|
29
34
|
# You can also decode a URL...
|
30
35
|
ZXing.decode 'http://2d-code.co.uk/images/bbc-logo-in-qr-code.gif'
|
31
36
|
|
@@ -44,7 +49,7 @@ decodes a plethora of barcodes. Their site has a complete list.
|
|
44
49
|
|
45
50
|
# ZXing#decode! will raise an error if it can't decode the image.
|
46
51
|
ZXing.decode! 'image_without_a_code.png' #=> raises ZXing::UndecodableError
|
47
|
-
|
52
|
+
|
48
53
|
== Decodable module
|
49
54
|
|
50
55
|
A Decodable module is included (pun intended) to ease using the library with objects that return the URL or file path to decode when #path or #to_s is called.
|
data/bin/zxing
CHANGED
@@ -0,0 +1,390 @@
|
|
1
|
+
!RBIX
|
2
|
+
2390329161478264409
|
3
|
+
x
|
4
|
+
M
|
5
|
+
1
|
6
|
+
n
|
7
|
+
n
|
8
|
+
x
|
9
|
+
10
|
10
|
+
__script__
|
11
|
+
i
|
12
|
+
180
|
13
|
+
5
|
14
|
+
7
|
15
|
+
0
|
16
|
+
64
|
17
|
+
47
|
18
|
+
49
|
19
|
+
1
|
20
|
+
1
|
21
|
+
15
|
22
|
+
5
|
23
|
+
7
|
24
|
+
2
|
25
|
+
64
|
26
|
+
47
|
27
|
+
49
|
28
|
+
1
|
29
|
+
1
|
30
|
+
15
|
31
|
+
45
|
32
|
+
3
|
33
|
+
4
|
34
|
+
78
|
35
|
+
49
|
36
|
+
5
|
37
|
+
1
|
38
|
+
19
|
39
|
+
0
|
40
|
+
15
|
41
|
+
45
|
42
|
+
6
|
43
|
+
7
|
44
|
+
49
|
45
|
+
8
|
46
|
+
0
|
47
|
+
19
|
48
|
+
1
|
49
|
+
15
|
50
|
+
45
|
51
|
+
6
|
52
|
+
9
|
53
|
+
49
|
54
|
+
10
|
55
|
+
0
|
56
|
+
19
|
57
|
+
2
|
58
|
+
15
|
59
|
+
7
|
60
|
+
11
|
61
|
+
64
|
62
|
+
45
|
63
|
+
6
|
64
|
+
12
|
65
|
+
49
|
66
|
+
8
|
67
|
+
0
|
68
|
+
45
|
69
|
+
6
|
70
|
+
13
|
71
|
+
49
|
72
|
+
10
|
73
|
+
0
|
74
|
+
35
|
75
|
+
2
|
76
|
+
7
|
77
|
+
14
|
78
|
+
64
|
79
|
+
49
|
80
|
+
15
|
81
|
+
1
|
82
|
+
7
|
83
|
+
16
|
84
|
+
64
|
85
|
+
35
|
86
|
+
3
|
87
|
+
19
|
88
|
+
3
|
89
|
+
15
|
90
|
+
45
|
91
|
+
17
|
92
|
+
18
|
93
|
+
7
|
94
|
+
19
|
95
|
+
64
|
96
|
+
65
|
97
|
+
49
|
98
|
+
20
|
99
|
+
0
|
100
|
+
49
|
101
|
+
21
|
102
|
+
2
|
103
|
+
19
|
104
|
+
4
|
105
|
+
15
|
106
|
+
99
|
107
|
+
43
|
108
|
+
22
|
109
|
+
7
|
110
|
+
23
|
111
|
+
49
|
112
|
+
5
|
113
|
+
1
|
114
|
+
20
|
115
|
+
4
|
116
|
+
49
|
117
|
+
24
|
118
|
+
1
|
119
|
+
9
|
120
|
+
111
|
121
|
+
1
|
122
|
+
8
|
123
|
+
124
|
124
|
+
99
|
125
|
+
43
|
126
|
+
22
|
127
|
+
7
|
128
|
+
23
|
129
|
+
49
|
130
|
+
5
|
131
|
+
1
|
132
|
+
20
|
133
|
+
4
|
134
|
+
49
|
135
|
+
25
|
136
|
+
1
|
137
|
+
15
|
138
|
+
20
|
139
|
+
4
|
140
|
+
47
|
141
|
+
101
|
142
|
+
26
|
143
|
+
7
|
144
|
+
27
|
145
|
+
63
|
146
|
+
2
|
147
|
+
19
|
148
|
+
5
|
149
|
+
15
|
150
|
+
7
|
151
|
+
28
|
152
|
+
64
|
153
|
+
20
|
154
|
+
5
|
155
|
+
7
|
156
|
+
29
|
157
|
+
64
|
158
|
+
7
|
159
|
+
30
|
160
|
+
20
|
161
|
+
0
|
162
|
+
47
|
163
|
+
101
|
164
|
+
26
|
165
|
+
7
|
166
|
+
31
|
167
|
+
63
|
168
|
+
3
|
169
|
+
35
|
170
|
+
4
|
171
|
+
19
|
172
|
+
6
|
173
|
+
15
|
174
|
+
5
|
175
|
+
7
|
176
|
+
32
|
177
|
+
64
|
178
|
+
20
|
179
|
+
3
|
180
|
+
20
|
181
|
+
6
|
182
|
+
81
|
183
|
+
33
|
184
|
+
36
|
185
|
+
1
|
186
|
+
47
|
187
|
+
51
|
188
|
+
34
|
189
|
+
1
|
190
|
+
15
|
191
|
+
2
|
192
|
+
11
|
193
|
+
I
|
194
|
+
d
|
195
|
+
I
|
196
|
+
7
|
197
|
+
I
|
198
|
+
0
|
199
|
+
I
|
200
|
+
0
|
201
|
+
n
|
202
|
+
p
|
203
|
+
35
|
204
|
+
s
|
205
|
+
8
|
206
|
+
rubygems
|
207
|
+
x
|
208
|
+
7
|
209
|
+
require
|
210
|
+
s
|
211
|
+
10
|
212
|
+
jruby-jars
|
213
|
+
x
|
214
|
+
4
|
215
|
+
ARGV
|
216
|
+
n
|
217
|
+
x
|
218
|
+
2
|
219
|
+
[]
|
220
|
+
x
|
221
|
+
9
|
222
|
+
JRubyJars
|
223
|
+
n
|
224
|
+
x
|
225
|
+
13
|
226
|
+
core_jar_path
|
227
|
+
n
|
228
|
+
x
|
229
|
+
15
|
230
|
+
stdlib_jar_path
|
231
|
+
s
|
232
|
+
3
|
233
|
+
-cp
|
234
|
+
n
|
235
|
+
n
|
236
|
+
s
|
237
|
+
1
|
238
|
+
:
|
239
|
+
x
|
240
|
+
4
|
241
|
+
join
|
242
|
+
s
|
243
|
+
14
|
244
|
+
org.jruby.Main
|
245
|
+
x
|
246
|
+
4
|
247
|
+
File
|
248
|
+
n
|
249
|
+
s
|
250
|
+
9
|
251
|
+
../../lib
|
252
|
+
x
|
253
|
+
11
|
254
|
+
active_path
|
255
|
+
x
|
256
|
+
11
|
257
|
+
expand_path
|
258
|
+
x
|
259
|
+
7
|
260
|
+
Globals
|
261
|
+
x
|
262
|
+
2
|
263
|
+
$:
|
264
|
+
x
|
265
|
+
8
|
266
|
+
include?
|
267
|
+
x
|
268
|
+
7
|
269
|
+
unshift
|
270
|
+
x
|
271
|
+
4
|
272
|
+
to_s
|
273
|
+
s
|
274
|
+
16
|
275
|
+
/zxing/server.rb
|
276
|
+
s
|
277
|
+
2
|
278
|
+
-r
|
279
|
+
s
|
280
|
+
2
|
281
|
+
-e
|
282
|
+
s
|
283
|
+
21
|
284
|
+
ZXing::Server.start!(
|
285
|
+
s
|
286
|
+
1
|
287
|
+
)
|
288
|
+
s
|
289
|
+
4
|
290
|
+
java
|
291
|
+
x
|
292
|
+
1
|
293
|
+
+
|
294
|
+
x
|
295
|
+
4
|
296
|
+
exec
|
297
|
+
p
|
298
|
+
33
|
299
|
+
I
|
300
|
+
0
|
301
|
+
I
|
302
|
+
2
|
303
|
+
I
|
304
|
+
9
|
305
|
+
I
|
306
|
+
3
|
307
|
+
I
|
308
|
+
12
|
309
|
+
I
|
310
|
+
5
|
311
|
+
I
|
312
|
+
1c
|
313
|
+
I
|
314
|
+
7
|
315
|
+
I
|
316
|
+
25
|
317
|
+
I
|
318
|
+
8
|
319
|
+
I
|
320
|
+
2e
|
321
|
+
I
|
322
|
+
b
|
323
|
+
I
|
324
|
+
45
|
325
|
+
I
|
326
|
+
c
|
327
|
+
I
|
328
|
+
4a
|
329
|
+
I
|
330
|
+
a
|
331
|
+
I
|
332
|
+
4d
|
333
|
+
I
|
334
|
+
f
|
335
|
+
I
|
336
|
+
5d
|
337
|
+
I
|
338
|
+
10
|
339
|
+
I
|
340
|
+
7c
|
341
|
+
I
|
342
|
+
0
|
343
|
+
I
|
344
|
+
7d
|
345
|
+
I
|
346
|
+
12
|
347
|
+
I
|
348
|
+
89
|
349
|
+
I
|
350
|
+
15
|
351
|
+
I
|
352
|
+
8e
|
353
|
+
I
|
354
|
+
16
|
355
|
+
I
|
356
|
+
9e
|
357
|
+
I
|
358
|
+
14
|
359
|
+
I
|
360
|
+
a1
|
361
|
+
I
|
362
|
+
19
|
363
|
+
I
|
364
|
+
b4
|
365
|
+
x
|
366
|
+
50
|
367
|
+
/Users/ncrespo/Developer/ruby/ruby/zxing/bin/zxing
|
368
|
+
p
|
369
|
+
7
|
370
|
+
x
|
371
|
+
4
|
372
|
+
port
|
373
|
+
x
|
374
|
+
5
|
375
|
+
jruby
|
376
|
+
x
|
377
|
+
12
|
378
|
+
jruby_stdlib
|
379
|
+
x
|
380
|
+
9
|
381
|
+
java_args
|
382
|
+
x
|
383
|
+
3
|
384
|
+
lib
|
385
|
+
x
|
386
|
+
4
|
387
|
+
path
|
388
|
+
x
|
389
|
+
9
|
390
|
+
ruby_args
|
data/lib/zxing.rb
CHANGED
@@ -39,6 +39,40 @@ module ZXing
|
|
39
39
|
Decoder.decode! normalize(file)
|
40
40
|
end
|
41
41
|
|
42
|
+
##
|
43
|
+
# Decodes barcodes from an image file, and returns an array of encoded
|
44
|
+
# values.
|
45
|
+
#
|
46
|
+
# +file+ should be the path to the image file to decode, as a string.
|
47
|
+
#
|
48
|
+
# Example:
|
49
|
+
#
|
50
|
+
# path = "path/to/file.png"
|
51
|
+
# ZXing.decode_all(path) #=> ["First encoded text","Second encoded text"]
|
52
|
+
#
|
53
|
+
# When the image cannot be decoded, +decode_all+ returns +nil+:
|
54
|
+
#
|
55
|
+
# path = "./no_encoded_image.png"
|
56
|
+
# ZXing.decode_all(path) #=> nil
|
57
|
+
#
|
58
|
+
def self.decode_all(file)
|
59
|
+
Decoder.decode_all normalize(file)
|
60
|
+
end
|
61
|
+
|
62
|
+
##
|
63
|
+
# Same as +decode_all+, but raises an exception when image cannot be decoded.
|
64
|
+
#
|
65
|
+
# +file+ should be the path to the image file to decode, as a string.
|
66
|
+
#
|
67
|
+
# Example:
|
68
|
+
#
|
69
|
+
# path = "./no_encoded_image.png"
|
70
|
+
# ZXing.decode(path) #=> ZXing::UndecodableError
|
71
|
+
#
|
72
|
+
def self.decode_all!(file)
|
73
|
+
Decoder.decode_all! normalize(file)
|
74
|
+
end
|
75
|
+
|
42
76
|
private
|
43
77
|
def self.normalize(file)
|
44
78
|
file.respond_to?(:path) ? file.path : file
|