Added EAN-8 Reader

pull/29/head
Christoph Oberhofer 10 years ago
parent 19aaeefc60
commit 5bf9add381

102
dist/quagga.js vendored

@ -1273,23 +1273,11 @@ define(
return null; return null;
}; };
EANReader.prototype._decode = function() { EANReader.prototype._decodePayload = function(code, result, decodedCodes) {
var startInfo, var i,
self = this, self = this,
code = null, codeFrequency = 0x0;
result = [],
i,
codeFrequency = 0x0,
decodedCodes = [];
try {
startInfo = self._findStart();
code = {
code : startInfo.code,
start : startInfo.start,
end : startInfo.end
};
decodedCodes.push(code);
for ( i = 0; i < 6; i++) { for ( i = 0; i < 6; i++) {
code = self._decodeCode(code.end); code = self._decodeCode(code.end);
if (code.code >= self.CODE_G_START) { if (code.code >= self.CODE_G_START) {
@ -1321,6 +1309,25 @@ define(
result.push(code.code); result.push(code.code);
} }
return code;
};
EANReader.prototype._decode = function() {
var startInfo,
self = this,
code = null,
result = [],
decodedCodes = [];
try {
startInfo = self._findStart();
code = {
code : startInfo.code,
start : startInfo.start,
end : startInfo.end
};
decodedCodes.push(code);
code = self._decodePayload(code, result, decodedCodes);
code = self._findEnd(code.end); code = self._findEnd(code.end);
if (code === null){ if (code === null){
return null; return null;
@ -7063,12 +7070,75 @@ define(
/* jshint undef: true, unused: true, browser:true, devel: true */ /* jshint undef: true, unused: true, browser:true, devel: true */
/* global define */ /* global define */
define('barcode_decoder',["bresenham", "image_debug", 'code_128_reader', 'ean_reader', 'code_39_reader', 'codabar_reader', 'upc_reader'], function(Bresenham, ImageDebug, Code128Reader, EANReader, Code39Reader, CodabarReader, UPCReader) { define(
'ean_8_reader',[
"./ean_reader"
],
function(EANReader) {
function EAN8Reader() {
EANReader.call(this);
}
EAN8Reader.prototype = Object.create(EANReader.prototype);
EAN8Reader.prototype.constructor = EAN8Reader;
EAN8Reader.prototype._decodePayload = function(code, result, decodedCodes) {
var i,
self = this;
for ( i = 0; i < 4; i++) {
code = self._decodeCode(code.end);
result.push(code.code);
decodedCodes.push(code);
}
code = self._findPattern(self.MIDDLE_PATTERN, code.end, true);
if (code === null) {
return null;
}
decodedCodes.push(code);
for ( i = 0; i < 4; i++) {
code = self._decodeCode(code.end, self.CODE_G_START);
decodedCodes.push(code);
result.push(code.code);
}
return code;
};
return (EAN8Reader);
}
);
/* jshint undef: true, unused: true, browser:true, devel: true */
/* global define */
define('barcode_decoder',[
"bresenham",
"image_debug",
'code_128_reader',
'ean_reader',
'code_39_reader',
'codabar_reader',
'upc_reader',
'ean_8_reader'
], function(
Bresenham,
ImageDebug,
Code128Reader,
EANReader,
Code39Reader,
CodabarReader,
UPCReader,
EAN8Reader) {
var readers = { var readers = {
code_128_reader: Code128Reader, code_128_reader: Code128Reader,
ean_reader: EANReader, ean_reader: EANReader,
ean_8_reader: EAN8Reader,
code_39_reader: Code39Reader, code_39_reader: Code39Reader,
codabar_reader: CodabarReader, codabar_reader: CodabarReader,
upc_reader: UPCReader upc_reader: UPCReader

File diff suppressed because one or more lines are too long

@ -44,7 +44,9 @@
<select name="decoder_readers"> <select name="decoder_readers">
<option value="code_128">Code 128</option> <option value="code_128">Code 128</option>
<option value="code_39">Code 39</option> <option value="code_39">Code 39</option>
<option value="ean" selected="selected">EAN</option> <option value="ean">EAN</option>
<option value="ean_8" selected="selected">EAN-8</option>
<option value="upc">UPC</option>
<option value="codabar">Codabar</option> <option value="codabar">Codabar</option>
</select> </select>
</label> </label>

@ -99,7 +99,7 @@ $(function() {
}, },
numOfWorkers: 0, numOfWorkers: 0,
decoder: { decoder: {
readers: ["ean_reader"], readers: ["ean_8_reader"],
showFrequency: true, showFrequency: true,
showPattern: true showPattern: true
}, },

@ -29,8 +29,10 @@
<div class="controls"> <div class="controls">
<button class="stop">Stop</button> <button class="stop">Stop</button>
<fieldset class="reader-group"> <fieldset class="reader-group">
<label>EAN-8</label>
<input type="radio" name="reader" value="ean_8" checked />
<label>UPC</label> <label>UPC</label>
<input type="radio" name="reader" value="upc" checked /> <input type="radio" name="reader" value="upc" />
<label>Code39</label> <label>Code39</label>
<input type="radio" name="reader" value="codabar" /> <input type="radio" name="reader" value="codabar" />
<label>Code128</label> <label>Code128</label>
@ -54,7 +56,7 @@
</footer> </footer>
<script src="../src/vendor/jquery-1.9.0.min.js" type="text/javascript"></script> <script src="../src/vendor/jquery-1.9.0.min.js" type="text/javascript"></script>
<script src="../dist/quagga.min.js" type="text/javascript"></script> <script src="../dist/quagga.js" type="text/javascript"></script>
<script src="live_w_locator.js" type="text/javascript"></script> <script src="live_w_locator.js" type="text/javascript"></script>
</body> </body>
</html> </html>

@ -7,7 +7,7 @@ $(function() {
type : "LiveStream" type : "LiveStream"
}, },
decoder : { decoder : {
readers : ["upc_reader"] readers : ["ean_8_reader"]
} }
}, function() { }, function() {
App.attachListeners(); App.attachListeners();

@ -1,12 +1,30 @@
/* jshint undef: true, unused: true, browser:true, devel: true */ /* jshint undef: true, unused: true, browser:true, devel: true */
/* global define */ /* global define */
define(["bresenham", "image_debug", 'code_128_reader', 'ean_reader', 'code_39_reader', 'codabar_reader', 'upc_reader'], function(Bresenham, ImageDebug, Code128Reader, EANReader, Code39Reader, CodabarReader, UPCReader) { define([
"bresenham",
"image_debug",
'code_128_reader',
'ean_reader',
'code_39_reader',
'codabar_reader',
'upc_reader',
'ean_8_reader'
], function(
Bresenham,
ImageDebug,
Code128Reader,
EANReader,
Code39Reader,
CodabarReader,
UPCReader,
EAN8Reader) {
"use strict"; "use strict";
var readers = { var readers = {
code_128_reader: Code128Reader, code_128_reader: Code128Reader,
ean_reader: EANReader, ean_reader: EANReader,
ean_8_reader: EAN8Reader,
code_39_reader: Code39Reader, code_39_reader: Code39Reader,
codabar_reader: CodabarReader, codabar_reader: CodabarReader,
upc_reader: UPCReader upc_reader: UPCReader

@ -0,0 +1,45 @@
/* jshint undef: true, unused: true, browser:true, devel: true */
/* global define */
define(
[
"./ean_reader"
],
function(EANReader) {
"use strict";
function EAN8Reader() {
EANReader.call(this);
}
EAN8Reader.prototype = Object.create(EANReader.prototype);
EAN8Reader.prototype.constructor = EAN8Reader;
EAN8Reader.prototype._decodePayload = function(code, result, decodedCodes) {
var i,
self = this;
for ( i = 0; i < 4; i++) {
code = self._decodeCode(code.end);
result.push(code.code);
decodedCodes.push(code);
}
code = self._findPattern(self.MIDDLE_PATTERN, code.end, true);
if (code === null) {
return null;
}
decodedCodes.push(code);
for ( i = 0; i < 4; i++) {
code = self._decodeCode(code.end, self.CODE_G_START);
decodedCodes.push(code);
result.push(code.code);
}
return code;
};
return (EAN8Reader);
}
);

@ -200,23 +200,11 @@ define(
return null; return null;
}; };
EANReader.prototype._decode = function() { EANReader.prototype._decodePayload = function(code, result, decodedCodes) {
var startInfo, var i,
self = this, self = this,
code = null, codeFrequency = 0x0;
result = [],
i,
codeFrequency = 0x0,
decodedCodes = [];
try {
startInfo = self._findStart();
code = {
code : startInfo.code,
start : startInfo.start,
end : startInfo.end
};
decodedCodes.push(code);
for ( i = 0; i < 6; i++) { for ( i = 0; i < 6; i++) {
code = self._decodeCode(code.end); code = self._decodeCode(code.end);
if (code.code >= self.CODE_G_START) { if (code.code >= self.CODE_G_START) {
@ -248,6 +236,25 @@ define(
result.push(code.code); result.push(code.code);
} }
return code;
};
EANReader.prototype._decode = function() {
var startInfo,
self = this,
code = null,
result = [],
decodedCodes = [];
try {
startInfo = self._findStart();
code = {
code : startInfo.code,
start : startInfo.start,
end : startInfo.end
};
decodedCodes.push(code);
code = self._decodePayload(code, result, decodedCodes);
code = self._findEnd(code.end); code = self._findEnd(code.end);
if (code === null){ if (code === null){
return null; return null;

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Loading…
Cancel
Save