Pure Javascript OCR for more than 100 Languages 📖🎉🖥
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.

9 lines
63 KiB

!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r=e();for(var n in r)("object"==typeof exports?exports:t)[n]=r[n]}}(window,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=1)}([function(t,e){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){(function(t){const e=r(2);t.addEventListener("message",({data:t})=>{e.dispatchHandlers(t,t=>postMessage(t))}),e.setAdapter({getCore:(e,r)=>(t.TesseractCore||(r.progress({status:"loading tesseract core",progress:0}),t.importScripts(e.workerOptions.corePath),t.TesseractCore="object"==typeof WebAssembly?t.TesseractCoreWASM:t.TesseractCoreASM,r.progress({status:"loading tesseract core",progress:1})),t.TesseractCore)})}).call(this,r(0))},function(t,e,r){const{readImage:n,loadLang:i}=r(3),o=r(17);let s,a,h,f={};const u=(t,e)=>{let r=100663296;if(["chi_sim","chi_tra","jpn"].includes(t.options.lang)&&(r=167772160),!s||s.TOTAL_MEMORY<r){const r=f.getCore(t,e);return e.progress({status:"initializing tesseract",progress:0}),r({TesseractProgress(t){h.progress({status:"recognizing text",progress:Math.max(0,(t-30)/70)})}}).then(t=>{a=new(s=t).TessBaseAPI,e.progress({status:"initialized tesseract",progress:1})})}return new Promise},c=t=>{const{w:e,h:r,data:i}=n(s,Array.from(t));return a.SetImage(i),a.SetRectangle(0,0,e,r),i},l=(t,e,r)=>{const{options:{lang:n},workerOptions:{langPath:o}}=t;return i({langs:n,tessModule:s,langURI:o,cache:!0}).then(r)};e.dispatchHandlers=((t,e)=>{const r=(r,n)=>{e({jobId:t.jobId,status:r,action:t.action,data:n})};r.resolve=r.bind(this,"resolve"),r.reject=r.bind(this,"reject"),r.progress=r.bind(this,"progress"),h=r;try{"recognize"===t.action?((t,e)=>{u(t,e).then(()=>{l(t,0,()=>{const{options:r}=t,n=t=>{e.progress({status:"initializing api",progress:t})};n(0),a.Init(null,r.lang),n(.3),Object.keys(r).forEach(t=>{a.SetVariable(t,r[t])}),n(.6);const i=c(t.image);n(1),a.Recognize(null);const h=o(s,a);a.End(),s._free(i),e.resolve(h)})})})(t.payload,r):"detect"===t.action&&((t,e)=>{u(t,e).then(()=>{t.options.lang="osd",l(t,0,()=>{a.Init(null,"osd"),a.SetPageSegMode(s.PSM_OSD_ONLY);const r=c(t.image),n=new s.OSResults;if(a.DetectOS(n)){const t=n.get_best_result(),i=t.get_orientation_id(),o=t.get_script_id();a.End(),s._free(r),e.resolve({tesseract_script_id:o,script:n.get_unicharset().get_script_from_script_id(o),script_confidence:t.get_sconfidence(),orientation_degrees:[0,270,180,90][i],orientation_confidence:t.get_oconfidence()})}else a.End(),s._free(r),e.reject("Failed to detect OS")})})})(t.payload,r)}catch(t){r.reject(t.toString())}}),e.setAdapter=(t=>{f=t})},function(t,e,r){t.exports={loadLang:r(4)({fetch:r(5),gunzip:r(7),...r(14)}),readImage:r(16)}},function(t,e){const r=t=>({tessModule:e,dataPath:r,cachePath:n,cache:i,lang:o})=>s=>{if(e){if(r)try{e.FS.mkdir(r)}catch(t){}e.FS.writeFile(`${r||"."}/${o}.traineddata`,s)}return i&&t.writeCache(`${n||"."}/${o}.traineddata`,s),s};t.exports=(t=>({langs:e,...n})=>Promise.all(e.split("+").map((t=>({langURI:e,cachePath:n,...i})=>o=>t.readCache(`${n||"."
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
* @license MIT
*/
var n=r(11),i=r(12),o=r(13);function s(){return h.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(s()<e)throw new RangeError("Invalid typed array length");return h.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e)).__proto__=h.prototype:(null===t&&(t=new h(e)),t.length=e),t}function h(t,e,r){if(!(h.TYPED_ARRAY_SUPPORT||this instanceof h))return new h(t,e,r);if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return c(this,t)}return f(this,t,e,r)}function f(t,e,r,n){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,r,n){if(e.byteLength,r<0||e.byteLength<r)throw new RangeError("'offset' is out of bounds");if(e.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");e=void 0===r&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,r):new Uint8Array(e,r,n);h.TYPED_ARRAY_SUPPORT?(t=e).__proto__=h.prototype:t=l(t,e);return t}(t,e,r,n):"string"==typeof e?function(t,e,r){"string"==typeof r&&""!==r||(r="utf8");if(!h.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|y(e,r),i=(t=a(t,n)).write(e,r);i!==n&&(t=t.slice(0,i));return t}(t,e,r):function(t,e){if(h.isBuffer(e)){var r=0|p(e.length);return 0===(t=a(t,r)).length?t:(e.copy(t,0,0,r),t)}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||(n=e.length)!=n?a(t,0):l(t,e);if("Buffer"===e.type&&o(e.data))return l(t,e.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(t,e)}function u(t){if("number"!=typeof t)throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function c(t,e){if(u(e),t=a(t,e<0?0:0|p(e)),!h.TYPED_ARRAY_SUPPORT)for(var r=0;r<e;++r)t[r]=0;return t}function l(t,e){var r=e.length<0?0:0|p(e.length);t=a(t,r);for(var n=0;n<r;n+=1)t[n]=255&e[n];return t}function p(t){if(t>=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function y(t,e){if(h.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return N(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return F(t).length;default:if(n)return N(t).length;e=(""+e).toLowerCase(),n=!0}}function d(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function g(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=h.from(e,n)),h.isBuffer(e))return 0===e.length?-1:b(t,e,r,n,i);if("number"==typeof e)return e&=255,h.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):b(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function b(t,e,r,n,i){var o,s=1,a=t.length,h=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,h/=2,r/=2}function f(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var u=-1;for(o=r;o<a;o++)if(f(t,o)===f(e,-1===u?0:o-u)){if(-1===u&&(u=o),o-u+1===h)return u*s}else-1!==u&&(o-=o-u),u=-1}else for(r+h>a&&(r=a-h),o=r;o>=0;o--){for(var c=!0,l=0;l<h;l++)if(f(t,o+l)!==f(e,l)){c=!1;break}if(c)return o}return-1}function w(t,e,r,n){r=Number(r)||0;var i=t.length-r;n?(n=Number(n))>i&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex s
//# sourceMappingURL=worker.min.js.map