You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
974 B
39 lines
974 B
import TesseractCore from 'tesseract.js-core' |
|
import pako from 'pako' |
|
|
|
import recognize from './recognize' |
|
import detect from './detect' |
|
|
|
var module, base, jobId |
|
|
|
onmessage = function(e) { |
|
var {action, args} = e.data; |
|
jobId = e.data.jobId |
|
|
|
console.log('worker got action', action) |
|
|
|
if(action == 'init'){ |
|
|
|
module = TesseractCore({ |
|
TOTAL_MEMORY: args.mem, //must be a multiple of 10 megabytes |
|
TesseractProgress(percent){ |
|
postMessage({ jobId, |
|
'progress': { |
|
'recognized': Math.max(0,(percent-30)/70) |
|
} |
|
}) |
|
}, |
|
onRuntimeInitialized() {} |
|
}) |
|
module.FS_createPath("/","tessdata",true,true) |
|
base = new module.TessBaseAPI() |
|
|
|
} else if(action === 'recognize'){ |
|
var {image, options} = args |
|
recognize(jobId, module, base, image, options, |
|
(error, result) => postMessage({jobId, error, result})) |
|
} else if(action === 'detect'){ |
|
detect(jobId, module, base, args.image, |
|
(error, result) => postMessage({jobId, error, result})) |
|
} |
|
} |