feat: allow multiple barcodes to be decoded

pull/90/head
dgreif 10 years ago
parent 09e1cd4b1e
commit afeb37be35

@ -267,13 +267,24 @@ export default {
return decodeFromBoundingBox(box); return decodeFromBoundingBox(box);
}, },
decodeFromBoundingBoxes: function(boxes) { decodeFromBoundingBoxes: function(boxes) {
var i, result; var i, result, barcodes = [];
for ( i = 0; i < boxes.length; i++) { for ( i = 0; i < boxes.length; i++) {
result = decodeFromBoundingBox(boxes[i]); result = decodeFromBoundingBox(boxes[i]);
if (result && result.codeResult) { if (result && result.codeResult) {
result.box = boxes[i]; result.box = boxes[i];
if (!config.multiple) {
return result; return result;
} }
barcodes.push(result);
}
}
if (config.multiple) {
return {
barcodes
};
} }
}, },
setReaders: function(readers) { setReaders: function(readers) {

@ -168,10 +168,16 @@ function transformResult(result) {
return; return;
} }
if (result.barcodes) {
for (i = 0; i < result.barcodes.length; i++) {
transformResult(result.barcodes[i]);
}
}
if (result.line && result.line.length === 2) { if (result.line && result.line.length === 2) {
moveLine(result.line); moveLine(result.line);
} }
if (result.boxes && result.boxes.length > 0) { if (result.boxes && result.boxes.length > 0) {
for (i = 0; i < result.boxes.length; i++) { for (i = 0; i < result.boxes.length; i++) {
moveBox(result.boxes[i]); moveBox(result.boxes[i]);
@ -195,14 +201,29 @@ function transformResult(result) {
} }
} }
function publishResult(result, imageData) { function addResult (result, imageData) {
if (_onUIThread) { var i;
transformResult(result);
if (imageData && result && result.codeResult) { if (!imageData || !result || !_resultCollector) {
if (_resultCollector) { return;
}
if (result.barcodes) {
for (i = 0; i < result.barcodes.length; i++) {
addResult(result.barcodes[i], imageData);
}
return;
}
if (result.codeResult) {
_resultCollector.addResult(imageData, _inputStream.getCanvasSize(), result.codeResult); _resultCollector.addResult(imageData, _inputStream.getCanvasSize(), result.codeResult);
} }
} }
function publishResult(result, imageData) {
if (_onUIThread) {
transformResult(result);
addResult(result, imageData);
} }
Events.publish("processed", result); Events.publish("processed", result);

Loading…
Cancel
Save