mirror of
https://github.com/serratus/quaggaJS.git
synced 2026-08-12 21:21:42 +08:00
Added EAN-8 Reader
This commit is contained in:
Vendored
+86
-16
@@ -1273,23 +1273,11 @@ define(
|
||||
return null;
|
||||
};
|
||||
|
||||
EANReader.prototype._decode = function() {
|
||||
var startInfo,
|
||||
EANReader.prototype._decodePayload = function(code, result, decodedCodes) {
|
||||
var i,
|
||||
self = this,
|
||||
code = null,
|
||||
result = [],
|
||||
i,
|
||||
codeFrequency = 0x0,
|
||||
decodedCodes = [];
|
||||
codeFrequency = 0x0;
|
||||
|
||||
try {
|
||||
startInfo = self._findStart();
|
||||
code = {
|
||||
code : startInfo.code,
|
||||
start : startInfo.start,
|
||||
end : startInfo.end
|
||||
};
|
||||
decodedCodes.push(code);
|
||||
for ( i = 0; i < 6; i++) {
|
||||
code = self._decodeCode(code.end);
|
||||
if (code.code >= self.CODE_G_START) {
|
||||
@@ -1321,6 +1309,25 @@ define(
|
||||
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);
|
||||
if (code === null){
|
||||
return null;
|
||||
@@ -7063,12 +7070,75 @@ define(
|
||||
/* 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'], 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 = {
|
||||
code_128_reader: Code128Reader,
|
||||
ean_reader: EANReader,
|
||||
ean_8_reader: EAN8Reader,
|
||||
code_39_reader: Code39Reader,
|
||||
codabar_reader: CodabarReader,
|
||||
upc_reader: UPCReader
|
||||
|
||||
Vendored
+4
-4
File diff suppressed because one or more lines are too long
@@ -44,7 +44,9 @@
|
||||
<select name="decoder_readers">
|
||||
<option value="code_128">Code 128</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>
|
||||
</select>
|
||||
</label>
|
||||
|
||||
@@ -99,7 +99,7 @@ $(function() {
|
||||
},
|
||||
numOfWorkers: 0,
|
||||
decoder: {
|
||||
readers: ["ean_reader"],
|
||||
readers: ["ean_8_reader"],
|
||||
showFrequency: true,
|
||||
showPattern: true
|
||||
},
|
||||
|
||||
@@ -29,8 +29,10 @@
|
||||
<div class="controls">
|
||||
<button class="stop">Stop</button>
|
||||
<fieldset class="reader-group">
|
||||
<label>EAN-8</label>
|
||||
<input type="radio" name="reader" value="ean_8" checked />
|
||||
<label>UPC</label>
|
||||
<input type="radio" name="reader" value="upc" checked />
|
||||
<input type="radio" name="reader" value="upc" />
|
||||
<label>Code39</label>
|
||||
<input type="radio" name="reader" value="codabar" />
|
||||
<label>Code128</label>
|
||||
@@ -54,7 +56,7 @@
|
||||
</footer>
|
||||
|
||||
<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>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,7 +7,7 @@ $(function() {
|
||||
type : "LiveStream"
|
||||
},
|
||||
decoder : {
|
||||
readers : ["upc_reader"]
|
||||
readers : ["ean_8_reader"]
|
||||
}
|
||||
}, function() {
|
||||
App.attachListeners();
|
||||
|
||||
+19
-1
@@ -1,12 +1,30 @@
|
||||
/* jshint undef: true, unused: true, browser:true, devel: true */
|
||||
/* 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";
|
||||
|
||||
var readers = {
|
||||
code_128_reader: Code128Reader,
|
||||
ean_reader: EANReader,
|
||||
ean_8_reader: EAN8Reader,
|
||||
code_39_reader: Code39Reader,
|
||||
codabar_reader: CodabarReader,
|
||||
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);
|
||||
}
|
||||
);
|
||||
+22
-15
@@ -200,23 +200,11 @@ define(
|
||||
return null;
|
||||
};
|
||||
|
||||
EANReader.prototype._decode = function() {
|
||||
var startInfo,
|
||||
EANReader.prototype._decodePayload = function(code, result, decodedCodes) {
|
||||
var i,
|
||||
self = this,
|
||||
code = null,
|
||||
result = [],
|
||||
i,
|
||||
codeFrequency = 0x0,
|
||||
decodedCodes = [];
|
||||
codeFrequency = 0x0;
|
||||
|
||||
try {
|
||||
startInfo = self._findStart();
|
||||
code = {
|
||||
code : startInfo.code,
|
||||
start : startInfo.start,
|
||||
end : startInfo.end
|
||||
};
|
||||
decodedCodes.push(code);
|
||||
for ( i = 0; i < 6; i++) {
|
||||
code = self._decodeCode(code.end);
|
||||
if (code.code >= self.CODE_G_START) {
|
||||
@@ -248,6 +236,25 @@ define(
|
||||
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);
|
||||
if (code === null){
|
||||
return null;
|
||||
|
||||
Vendored
BIN
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
Vendored
BIN
Binary file not shown.
|
After Width: | Height: | Size: 50 KiB |
Vendored
BIN
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
Reference in New Issue
Block a user