mirror of
https://github.com/serratus/quaggaJS.git
synced 2026-08-12 21:21:42 +08:00
Fixed file-input example
This commit is contained in:
@@ -39,7 +39,6 @@
|
||||
<ul>
|
||||
<li>Use static image as source</li>
|
||||
<li>Configuring EAN-Reader</li>
|
||||
<li>Use custom mount-point (Query-Selector)</li>
|
||||
</ul>
|
||||
</p>
|
||||
<div class="source-code">
|
||||
@@ -53,12 +52,14 @@ var App = {
|
||||
init: function() {
|
||||
this.attachListeners();
|
||||
},
|
||||
decode: function(src) {
|
||||
Quagga
|
||||
.decoder({readers: ['ean_reader']})
|
||||
.locator({patchSize: 'medium'})
|
||||
.fromImage(src, {size: 800})
|
||||
.toPromise()
|
||||
decode: function(file) {
|
||||
Quagga.fromImage({
|
||||
constraints: {src: file, width: 800, height: 800},
|
||||
decoder: {readers: ['ean_reader']},
|
||||
})
|
||||
.then(function(scanner) {
|
||||
return scanner.detect();
|
||||
})
|
||||
.then(function(result) {
|
||||
document.querySelector('input.isbn').value = result.codeResult.code;
|
||||
})
|
||||
@@ -84,7 +85,7 @@ var App = {
|
||||
e.preventDefault();
|
||||
fileInput.removeEventListener("change", onChange);
|
||||
if (e.target.files && e.target.files.length) {
|
||||
self.decode(URL.createObjectURL(e.target.files[0]));
|
||||
self.decode(e.target.files[0]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -5,15 +5,18 @@ var App = {
|
||||
this.attachListeners();
|
||||
},
|
||||
decode: function(file) {
|
||||
Quagga
|
||||
.decoder({readers: ['ean_reader']})
|
||||
.locator({patchSize: 'medium'})
|
||||
.fromSource(file, {size: 800})
|
||||
.toPromise()
|
||||
Quagga.fromImage({
|
||||
constraints: {src: file, width: 800, height: 800},
|
||||
decoder: {readers: ['ean_reader']},
|
||||
})
|
||||
.then(function(scanner) {
|
||||
return scanner.detect();
|
||||
})
|
||||
.then(function(result) {
|
||||
document.querySelector('input.isbn').value = result.codeResult.code;
|
||||
})
|
||||
.catch(function() {
|
||||
.catch(function(e) {
|
||||
console.error(e);
|
||||
document.querySelector('input.isbn').value = "Not Found";
|
||||
})
|
||||
.then(function() {
|
||||
|
||||
@@ -32,7 +32,11 @@ function adjustCanvasSize(input, canvas) {
|
||||
|
||||
function getOrCreateCanvas(source, target) {
|
||||
const $viewport = getViewport(target);
|
||||
let $canvas = $viewport.querySelector("canvas.imgBuffer");
|
||||
let $canvas = null;
|
||||
if ($viewport) {
|
||||
$canvas = $viewport.querySelector("canvas.imgBuffer");
|
||||
}
|
||||
|
||||
if (!$canvas) {
|
||||
$canvas = document.createElement("canvas");
|
||||
$canvas.className = "imgBuffer";
|
||||
|
||||
+7
-3
@@ -47,16 +47,20 @@ function createScanner(pixelCapturer) {
|
||||
const source = pixelCapturer ? pixelCapturer.getSource() : {};
|
||||
|
||||
function updateViewportStyle(target) {
|
||||
const $video = source.getDrawable();
|
||||
const $drawable = source.getDrawable();
|
||||
const $viewport = getViewport(target);
|
||||
|
||||
if (!$viewport) {
|
||||
return;
|
||||
}
|
||||
|
||||
const {viewport} = source.getDimensions();
|
||||
const zoom = Math.floor((((2 * viewport.x) + viewport.width) / viewport.width) * 100) / 100;
|
||||
const videoWidth = zoom * viewport.width;
|
||||
const translate = ((viewport.x / videoWidth) * (-100)).toFixed(5);
|
||||
|
||||
$video.style.width = `${zoom * 100}%`;
|
||||
$video.style.transform = `translate(${translate}%, ${translate}%)`;
|
||||
$drawable.style.width = `${zoom * 100}%`;
|
||||
$drawable.style.transform = `translate(${translate}%, ${translate}%)`;
|
||||
$viewport.style.paddingBottom = `${(viewport.height * 100 / viewport.width).toFixed(5)}%`;
|
||||
$viewport.style.overflow = "hidden";
|
||||
$viewport.style.height = 0;
|
||||
|
||||
Reference in New Issue
Block a user