UNPKG

fprint-r303t

Version:

Install:

66 lines (53 loc) 1.79 kB
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;