diff --git a/dist/quagga.js b/dist/quagga.js index bf35b5e..522e58a 100644 --- a/dist/quagga.js +++ b/dist/quagga.js @@ -597,6 +597,18 @@ define( } return result; }; + + BarcodeReader.prototype._matchRange = function(start, end, value) { + var i; + + start = start < 0 ? 0 : start; + for (i = start; i < end; i++) { + if (this._row[i] !== value) { + return false; + } + } + return true; + }; BarcodeReader.DIRECTION = { FORWARD : 1, @@ -6505,6 +6517,8 @@ define( } while(decodedChar !== '*'); result.pop(); + + return { code : result.join(""), start : start.start, @@ -6542,6 +6556,7 @@ define( var numCounters = counters.length, maxNarrowWidth = 0, numWideBars = numCounters, + wideBarWidth = 0, self = this, pattern, i; @@ -6554,18 +6569,25 @@ define( if (counters[i] > maxNarrowWidth) { pattern |= 1 << (numCounters - 1 - i); numWideBars++; + wideBarWidth += counters[i]; } } if (numWideBars === 3) { + for (i = 0; i < numCounters && numWideBars > 0; i++) { + if (counters[i] > maxNarrowWidth) { + numWideBars--; + if ((counters[i] * 3) >= wideBarWidth) { + return -1; + } + } + } return pattern; } } return -1; }; - Code39Reader.prototype._findEnd = function() { - }; Code39Reader.prototype._findStart = function() { var self = this, offset = self._nextSet(self._row), @@ -6574,7 +6596,8 @@ define( counterPos = 0, isWhite = false, i, - j; + j, + whiteSpaceMustStart; for ( i = offset; i < self._row.length; i++) { if (self._row[i] ^ isWhite) { @@ -6584,10 +6607,13 @@ define( // find start pattern if (self._toPattern(counter) === self.ASTERISK) { - return { - start: patternStart, - end: i - }; + whiteSpaceMustStart = Math.floor(Math.max(0, patternStart - ((i - patternStart) / 4))); + if (self._matchRange(whiteSpaceMustStart, patternStart, 0)) { + return { + start: patternStart, + end: i + }; + } } patternStart += counter[0] + counter[1]; @@ -7016,7 +7042,7 @@ define('config',[],function(){ } }, tracking: false, - debug: false, + debug: true, controls: false, locate: true, numOfWorkers: 0, @@ -7026,9 +7052,9 @@ define('config',[],function(){ }, decoder:{ drawBoundingBox: false, - showFrequency: false, + showFrequency: true, drawScanline: false, - showPattern: false, + showPattern: true, readers: [ 'code_128_reader' ] diff --git a/example/static_images.html b/example/static_images.html index 713b3de..e95d159 100644 --- a/example/static_images.html +++ b/example/static_images.html @@ -43,7 +43,7 @@
-
+