UNPKG

captcha-cv-ocr

Version:

Verification code identification based on OCR (Tesseract) and CV (OpenCV)

40 lines (35 loc) 1.09 kB
/* From: https://github.com/naptha/tesseract.js/blob/b2bc416dd2cdefee271324e31061e796a1971609/src/worker/node/loadImage.js */ const util = require('util'); const fs = require('fs'); const fetch = require('node-fetch'); const isURL = require('is-url'); const readFile = util.promisify(fs.readFile); /** * loadImage * * @name loadImage * @function load image from different source * @access public */ module.exports = async (image) => { let data = image; if (typeof image === 'undefined') { return image; } if (typeof image === 'string') { if (isURL(image) || image.startsWith('moz-extension://') || image.startsWith('chrome-extension://') || image.startsWith('file://')) { const resp = await fetch(image); data = await resp.arrayBuffer(); } else if (/data:image\/([a-zA-Z]*);base64,([^"]*)/.test(image)) { data = Buffer.from(image.split(',')[1], 'base64'); } else { data = await readFile(image); } } else if (Buffer.isBuffer(image)) { data = image; } return new Uint8Array(data); };