mirror of
https://github.com/serratus/quaggaJS.git
synced 2026-08-12 21:21:42 +08:00
Barely working concept
This commit is contained in:
Vendored
+41
-9
@@ -6933,14 +6933,46 @@ 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'], function(Bresenham, ImageDebug, Code128Reader, EANReader, Code39Reader, CodabarReader) {
|
define(
|
||||||
|
'upc_reader',[
|
||||||
|
"./ean_reader"
|
||||||
|
],
|
||||||
|
function(EANReader) {
|
||||||
|
|
||||||
|
|
||||||
|
function UPCReader() {
|
||||||
|
EANReader.call(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
UPCReader.prototype = Object.create(EANReader.prototype);
|
||||||
|
UPCReader.prototype.constructor = UPCReader;
|
||||||
|
|
||||||
|
UPCReader.prototype._decode = function() {
|
||||||
|
var result = EANReader.prototype._decode.call(this);
|
||||||
|
|
||||||
|
if (result && result.code && result.code.length === 13 && result.code.charAt(0) === "0") {
|
||||||
|
|
||||||
|
result.code = result.code.substring(1);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
return (UPCReader);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
/* 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) {
|
||||||
|
|
||||||
|
|
||||||
var readers = {
|
var readers = {
|
||||||
code_128_reader: Code128Reader,
|
code_128_reader: Code128Reader,
|
||||||
ean_reader: EANReader,
|
ean_reader: EANReader,
|
||||||
code_39_reader: Code39Reader,
|
code_39_reader: Code39Reader,
|
||||||
codabar_reader: CodabarReader
|
codabar_reader: CodabarReader,
|
||||||
|
upc_reader: UPCReader
|
||||||
};
|
};
|
||||||
var BarcodeDecoder = {
|
var BarcodeDecoder = {
|
||||||
create : function(config, inputImageWrapper) {
|
create : function(config, inputImageWrapper) {
|
||||||
@@ -7347,18 +7379,18 @@ define('config',[],function(){
|
|||||||
decoder:{
|
decoder:{
|
||||||
drawBoundingBox: false,
|
drawBoundingBox: false,
|
||||||
showFrequency: false,
|
showFrequency: false,
|
||||||
drawScanline: false,
|
drawScanline: true,
|
||||||
showPattern: false,
|
showPattern: true,
|
||||||
readers: [
|
readers: [
|
||||||
'code_128_reader'
|
'code_128_reader'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
locator: {
|
locator: {
|
||||||
halfSample: true,
|
halfSample: true,
|
||||||
patchSize: 32,
|
patchSize: 64,
|
||||||
showCanvas: false,
|
showCanvas: true,
|
||||||
showPatches: false,
|
showPatches: false,
|
||||||
showFoundPatches: false,
|
showFoundPatches: true,
|
||||||
showSkeleton: false,
|
showSkeleton: false,
|
||||||
showLabels: false,
|
showLabels: false,
|
||||||
showPatchLabels: false,
|
showPatchLabels: false,
|
||||||
@@ -7995,10 +8027,10 @@ function(Code128Reader, EANReader, InputStream, ImageWrapper, BarcodeLocator, Ba
|
|||||||
sequence : false,
|
sequence : false,
|
||||||
size: 800
|
size: 800
|
||||||
};
|
};
|
||||||
config.numOfWorkers = 1;
|
config.numOfWorkers = 0;
|
||||||
config.locator = {
|
config.locator = {
|
||||||
halfSample: false,
|
halfSample: false,
|
||||||
patchSize: 25
|
patchSize: 40
|
||||||
};
|
};
|
||||||
this.init(config, function() {
|
this.init(config, function() {
|
||||||
Events.once("detected", function(result) {
|
Events.once("detected", function(result) {
|
||||||
|
|||||||
Vendored
+2
-2
File diff suppressed because one or more lines are too long
@@ -0,0 +1,83 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||||
|
|
||||||
|
<title>Camera</title>
|
||||||
|
<script type="text/javascript">
|
||||||
|
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
|
||||||
|
window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;
|
||||||
|
|
||||||
|
function getUserMedia(constraints, success, failure) {
|
||||||
|
navigator.getUserMedia(constraints, function(stream) {
|
||||||
|
var videoSrc = (window.URL && window.URL.createObjectURL(stream)) || stream;
|
||||||
|
success.apply(null, [videoSrc]);
|
||||||
|
}, failure);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function initCamera(constraints, video, callback) {
|
||||||
|
getUserMedia(constraints, function (src) {
|
||||||
|
video.src = src;
|
||||||
|
video.addEventListener('loadeddata', function() {
|
||||||
|
var attempts = 10;
|
||||||
|
|
||||||
|
function checkVideo() {
|
||||||
|
if (attempts > 0) {
|
||||||
|
if (video.videoWidth > 0 && video.videoHeight > 0) {
|
||||||
|
console.log(video.videoWidth + "px x " + video.videoHeight + "px");
|
||||||
|
video.play();
|
||||||
|
callback();
|
||||||
|
} else {
|
||||||
|
window.setTimeout(checkVideo, 100);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
callback('Unable to play video stream.');
|
||||||
|
}
|
||||||
|
attempts--;
|
||||||
|
}
|
||||||
|
|
||||||
|
checkVideo();
|
||||||
|
}, false);
|
||||||
|
}, function(e) {
|
||||||
|
console.log(e);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function copyToCanvas(video, ctx) {
|
||||||
|
( function frame() {
|
||||||
|
ctx.drawImage(video, 0, 0);
|
||||||
|
window.requestAnimationFrame(frame);
|
||||||
|
}());
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('load', function() {
|
||||||
|
var constraints = {
|
||||||
|
video: {
|
||||||
|
mandatory: {
|
||||||
|
minWidth: 1280,
|
||||||
|
minHeight: 720
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
video = document.createElement('video'),
|
||||||
|
canvas = document.createElement('canvas');
|
||||||
|
|
||||||
|
document.body.appendChild(video);
|
||||||
|
document.body.appendChild(canvas);
|
||||||
|
|
||||||
|
initCamera(constraints, video, function() {
|
||||||
|
canvas.setAttribute('width', video.videoWidth);
|
||||||
|
canvas.setAttribute('height', video.videoHeight);
|
||||||
|
copyToCanvas(video, canvas.getContext('2d'));
|
||||||
|
});
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -36,12 +36,16 @@
|
|||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="file" capture/>
|
<input type="file" capture/>
|
||||||
<fieldset class="reader-group">
|
<fieldset class="reader-group">
|
||||||
|
<label>UPC</label>
|
||||||
|
<input type="radio" name="reader" value="upc" checked />
|
||||||
|
<label>Code39</label>
|
||||||
|
<input type="radio" name="reader" value="codabar" />
|
||||||
<label>Code128</label>
|
<label>Code128</label>
|
||||||
<input type="radio" name="reader" value="code_128"/>
|
<input type="radio" name="reader" value="code_128"/>
|
||||||
<label>EAN</label>
|
<label>EAN</label>
|
||||||
<input type="radio" name="reader" value="ean"/>
|
<input type="radio" name="reader" value="ean"/>
|
||||||
<label>Code39</label>
|
<label>Code39</label>
|
||||||
<input type="radio" name="reader" value="code_39" checked/>
|
<input type="radio" name="reader" value="code_39"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
<div id="result_strip">
|
<div id="result_strip">
|
||||||
|
|||||||
@@ -4,8 +4,7 @@ $(function() {
|
|||||||
App.attachListeners();
|
App.attachListeners();
|
||||||
},
|
},
|
||||||
config: {
|
config: {
|
||||||
reader: "code_39",
|
reader: "upc"
|
||||||
length: 10
|
|
||||||
},
|
},
|
||||||
attachListeners: function() {
|
attachListeners: function() {
|
||||||
$(".controls input[type=file]").on("change", function(e) {
|
$(".controls input[type=file]").on("change", function(e) {
|
||||||
|
|||||||
@@ -29,8 +29,12 @@
|
|||||||
<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>UPC</label>
|
||||||
|
<input type="radio" name="reader" value="upc" checked />
|
||||||
|
<label>Code39</label>
|
||||||
|
<input type="radio" name="reader" value="codabar" />
|
||||||
<label>Code128</label>
|
<label>Code128</label>
|
||||||
<input type="radio" name="reader" value="code_128" checked />
|
<input type="radio" name="reader" value="code_128" />
|
||||||
<label>EAN</label>
|
<label>EAN</label>
|
||||||
<input type="radio" name="reader" value="ean" />
|
<input type="radio" name="reader" value="ean" />
|
||||||
<label>Code39</label>
|
<label>Code39</label>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ $(function() {
|
|||||||
type : "LiveStream"
|
type : "LiveStream"
|
||||||
},
|
},
|
||||||
decoder : {
|
decoder : {
|
||||||
readers : ["code_128_reader"]
|
readers : ["upc_reader"]
|
||||||
}
|
}
|
||||||
}, function() {
|
}, function() {
|
||||||
App.attachListeners();
|
App.attachListeners();
|
||||||
|
|||||||
@@ -31,8 +31,10 @@
|
|||||||
<div class="controls">
|
<div class="controls">
|
||||||
<button class="next">Next</button>
|
<button class="next">Next</button>
|
||||||
<fieldset class="reader-group">
|
<fieldset class="reader-group">
|
||||||
<label>Codabar</label>
|
<label>UPC</label>
|
||||||
<input type="radio" name="reader" value="codabar" checked />
|
<input type="radio" name="reader" value="upc" checked />
|
||||||
|
<label>Code39</label>
|
||||||
|
<input type="radio" name="reader" value="codabar" />
|
||||||
<label>Code39</label>
|
<label>Code39</label>
|
||||||
<input type="radio" name="reader" value="code_39" />
|
<input type="radio" name="reader" value="code_39" />
|
||||||
<label>Code128</label>
|
<label>Code128</label>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ $(function() {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
config: {
|
config: {
|
||||||
reader: "codabar",
|
reader: "upc",
|
||||||
length: 10
|
length: 10
|
||||||
},
|
},
|
||||||
attachListeners: function() {
|
attachListeners: function() {
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
/* 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'], function(Bresenham, ImageDebug, Code128Reader, EANReader, Code39Reader, CodabarReader) {
|
define(["bresenham", "image_debug", 'code_128_reader', 'ean_reader', 'code_39_reader', 'codabar_reader', 'upc_reader'], function(Bresenham, ImageDebug, Code128Reader, EANReader, Code39Reader, CodabarReader, UPCReader) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var readers = {
|
var readers = {
|
||||||
code_128_reader: Code128Reader,
|
code_128_reader: Code128Reader,
|
||||||
ean_reader: EANReader,
|
ean_reader: EANReader,
|
||||||
code_39_reader: Code39Reader,
|
code_39_reader: Code39Reader,
|
||||||
codabar_reader: CodabarReader
|
codabar_reader: CodabarReader,
|
||||||
|
upc_reader: UPCReader
|
||||||
};
|
};
|
||||||
var BarcodeDecoder = {
|
var BarcodeDecoder = {
|
||||||
create : function(config, inputImageWrapper) {
|
create : function(config, inputImageWrapper) {
|
||||||
|
|||||||
+5
-5
@@ -23,18 +23,18 @@ define(function(){
|
|||||||
decoder:{
|
decoder:{
|
||||||
drawBoundingBox: false,
|
drawBoundingBox: false,
|
||||||
showFrequency: false,
|
showFrequency: false,
|
||||||
drawScanline: false,
|
drawScanline: true,
|
||||||
showPattern: false,
|
showPattern: true,
|
||||||
readers: [
|
readers: [
|
||||||
'code_128_reader'
|
'code_128_reader'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
locator: {
|
locator: {
|
||||||
halfSample: true,
|
halfSample: true,
|
||||||
patchSize: 32,
|
patchSize: 64,
|
||||||
showCanvas: false,
|
showCanvas: true,
|
||||||
showPatches: false,
|
showPatches: false,
|
||||||
showFoundPatches: false,
|
showFoundPatches: true,
|
||||||
showSkeleton: false,
|
showSkeleton: false,
|
||||||
showLabels: false,
|
showLabels: false,
|
||||||
showPatchLabels: false,
|
showPatchLabels: false,
|
||||||
|
|||||||
+2
-2
@@ -400,10 +400,10 @@ function(Code128Reader, EANReader, InputStream, ImageWrapper, BarcodeLocator, Ba
|
|||||||
sequence : false,
|
sequence : false,
|
||||||
size: 800
|
size: 800
|
||||||
};
|
};
|
||||||
config.numOfWorkers = 1;
|
config.numOfWorkers = 0;
|
||||||
config.locator = {
|
config.locator = {
|
||||||
halfSample: false,
|
halfSample: false,
|
||||||
patchSize: 25
|
patchSize: 40
|
||||||
};
|
};
|
||||||
this.init(config, function() {
|
this.init(config, function() {
|
||||||
Events.once("detected", function(result) {
|
Events.once("detected", function(result) {
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/* jshint undef: true, unused: true, browser:true, devel: true */
|
||||||
|
/* global define */
|
||||||
|
|
||||||
|
define(
|
||||||
|
[
|
||||||
|
"./ean_reader"
|
||||||
|
],
|
||||||
|
function(EANReader) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
function UPCReader() {
|
||||||
|
EANReader.call(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
UPCReader.prototype = Object.create(EANReader.prototype);
|
||||||
|
UPCReader.prototype.constructor = UPCReader;
|
||||||
|
|
||||||
|
UPCReader.prototype._decode = function() {
|
||||||
|
var result = EANReader.prototype._decode.call(this);
|
||||||
|
|
||||||
|
if (result && result.code && result.code.length === 13 && result.code.charAt(0) === "0") {
|
||||||
|
|
||||||
|
result.code = result.code.substring(1);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
return (UPCReader);
|
||||||
|
}
|
||||||
|
);
|
||||||
Reference in New Issue
Block a user