fprint-r303t
Version:
Install:
66 lines (53 loc) • 1.79 kB
JavaScript
const __await = require('tslib');
const fs = require('fs');
let Finger;
Finger = require('./libfprint');
let processImage = async (timeout) => {
timeout = parseInt(timeout) || 10000;
let config = { width: 214, height: 214, rotate: 180 };
let image = await Finger.getImage(timeout, true, Object.assign(config || {}));
if (!image) throw new Error('No image with finger');
console.log('---> enroll end');
let mask;
mask = await image.constructor.read('mask.png');
console.log('---> resize start\n');
await image.resize(config.width, config.height);
console.log('---> mask start');
await image.mask(mask, Math.ceil((config.width - 192) / 2), Math.ceil((config.height - 192) / 2));
console.log('---> crop start');
await image.crop(Math.ceil((config.width - 192) / 2), Math.ceil((config.height - 192) / 2), 192, 192);
if (config.rotate) {
console.log('---> rotate start');
await image.rotate(parseInt(config.rotate));
}
let buf = await new Promise((resolve, reject) => image.getBuffer(image.constructor.MIME_PNG, (err, buffer) => err ? reject(err) : resolve(buffer)));
return buf;
}
let i = 0;
let errIndex = 0;
let checkFinger = () => {
processImage(5000)
.then(buffer => {
if (buffer) {
fs.writeFile(`./test${i}.png`, buffer, function (err) {
if (err) {
return console.log(err);
}
});
if (i < 10) {
i++;
console.log('--->scan №', i + 1, ' start');
checkFinger();
}
}
else console.log('--->image=', buffer);
})
.catch(e => {
errIndex++;
console.log('--->errIndex = '+ errIndex);
console.error(e);
setTimeout(() => checkFinger(), 1000);
});
}
checkFinger();
module.exports = processImage;