browserified worker.js

master
Guillermo 9 years ago
parent 1636e1674e
commit 29d7e56d20
  1. 2
      example.htm
  2. 2
      lib/Tesseract.js
  3. 52
      worker_src/worker.js

@ -1,5 +1,5 @@
<canvas id="c"></canvas>
<script type="text/javascript" src="./Tesseract.js"></script>
<script type="text/javascript" src="./lib/Tesseract.js"></script>
<script type="text/javascript">
var canvas = document.getElementById('c')
canvas.width = 400

@ -34,7 +34,7 @@ Tesseract.recognize = function(image, options, callback){
}
if(image.getImageData) image = image.getImageData(0, 0, image.canvas.width, image.canvas.height);
var worker = new Worker('./worker.js')
var worker = new Worker('https://cdn.rawgit.com/naptha/tesseract.js/master/lib/worker.js')
if(typeof callback === "function"){
worker.onmessage = function(e){

@ -72,6 +72,8 @@ var filesizes = {
"vie": 2195922
}
var pako = require('pako')
var recognize = (function createTesseractInstance(){
var Module = Tesseract304({
@ -83,33 +85,30 @@ var recognize = (function createTesseractInstance(){
var base = new Module.TessBaseAPI()
var loaded_langs = []
var loadLanguage = (function(){
return (function loadLanguage(lang, cb){ // NodeJS style callback
if(loaded_langs.indexOf(lang) != -1){
cb(null, lang)
}
else{
Module.FS_createPath("/","tessdata",true,true)
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://cdn.rawgit.com/naptha/tessdata/gh-pages/3.02/'+lang+'.traineddata.gz', true);
xhr.responseType = 'arraybuffer';
xhr.onerror = function(){ cb(xhr, null) }
xhr.onprogress = function(e){console.log('loading',lang,'language model:',Math.round(e.loaded/filesizes[lang]*100)+'%')}
xhr.onload = function(){
if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) {
console.log('unzipping language model...')
var data = new Uint8Array(unzip(new Uint8Array(xhr.response)))
console.log(lang +".traineddata", 'sucessfully unzipped')
Module.FS_createDataFile('tessdata', lang +".traineddata", data, true, false);
loaded_langs.push(lang)
cb(null, lang)
} else cb(xhr, null);
}
xhr.send(null)
var loadLanguage = function(lang, cb){ // NodeJS style callback
if(loaded_langs.indexOf(lang) != -1){
cb(null, lang)
}
else{
Module.FS_createPath("/","tessdata",true,true)
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://cdn.rawgit.com/naptha/tessdata/gh-pages/3.02/'+lang+'.traineddata.gz', true);
xhr.responseType = 'arraybuffer';
xhr.onerror = function(){ cb(xhr, null) }
xhr.onprogress = function(e){console.log('loading',lang,'language model:',Math.round(e.loaded/filesizes[lang]*100)+'%')}
xhr.onload = function(){
if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) {
console.log('unzipping language model...')
var data = new Uint8Array(pako.deflate(new Uint8Array(xhr.response)))
console.log(lang +".traineddata", 'sucessfully unzipped')
Module.FS_createDataFile('tessdata', lang +".traineddata", data, true, false);
loaded_langs.push(lang)
cb(null, lang)
} else cb(xhr, null);
}
})
})()
xhr.send(null)
}
}
function DumpLiterallyEverything(){
var ri = base.GetIterator();
@ -289,6 +288,7 @@ var recognize = (function createTesseractInstance(){
var ptr = Module.allocate(image, 'i8', Module.ALLOC_NORMAL);
loadLanguage(lang, function(err, result){
if(err){
console.error("error loading", lang);
cb(err, null)

Loading…
Cancel
Save