QR/bar code scanner for the Browser
npm install @maslick/koder


emscripten/emsdk, Dockerfileoffline mode!
* :new: Emscripten v3.1.1
* :new: npm package


âš¡ Usage
$3
`shell
npm install --global yarn
yarn install --frozen-lockfile
`$3
`shell
npm run start
open https://locahost:8080
`$3
`shell
npm run build # -> build React app into ./public
npm run prod # -> serve static web app on port 8082
open http://localhost:8082
`âš¡ NPM module
`
npm install @maslick/koder
``javascript
// CommonJS
const Koder = require('@maslick/koder');// ES6 modules
import Koder from '@maslick/koder';
``javascript
const Koder = require('@maslick/koder');
const {loadImage, createCanvas} = require("canvas");const getImageData = async (src) => {
const img = await loadImage(src);
const canvas = createCanvas(img.width, img.height);
const ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
return {
data: ctx.getImageData(0, 0, img.width, img.height).data,
width: img.width,
height: img.height
};
};
(async () => {
const url = 'https://raw.githubusercontent.com/maslick/koder/master/screenshots/app_1.png';
const koder = await new Koder().initialized;
const {data, width, height} = await getImageData(url);
const t0 = new Date().getTime();
const res = koder.decode(data, width, height);
const t1 = new Date().getTime();
console.log(
Scanned in ${t1-t0} ms); // Scanned in 7 ms
console.log(res); // http://en.m.wikipedia.org
})();
`:spades: Development
$3
`shell
docker pull maslick/emscripten-zbar-sdk
docker build -t maslick/emscripten-zbar-sdk -f docker/Dockerfile docker
`$3
`shell
React app
docker run \
-e INPUT_FILE=zbar/qr.cpp \
-e OUTPUT_FILE=zbar \
-e OUTPUT_DIR=public/wasm \
-v $(pwd):/app \
maslick/emscripten-zbar-sdk make -B
`$3
`shell
React app
OUTPUT_DIR=public/wasm OUTPUT_FILE=zbar make clean
``