Browse Source

Fix browser image reading issue

Jerome Wu 7 years ago
parent
commit
259562a422
  1. 2
      examples/file-input/basic.html
  2. 31
      package-lock.json
  3. 1
      package.json
  4. 31
      src/browser/index.js

2
examples/file-input/basic.html

@ -1,2 +1,2 @@ @@ -1,2 +1,2 @@
<script src="/dist/tesseract.dev.js"></script>
<input type="file" onchange="Tesseract.recognize(this.files[0]).progress(function(data){console.log(data)}).then(function(data){console.log(data)})">
<input type="file" onchange="const worker = new Tesseract.TesseractWorker();worker.recognize(this.files[0]).progress(function(data){console.log(data)}).then(function(data){console.log(data)})">

31
package-lock.json generated

@ -2152,12 +2152,14 @@ @@ -2152,12 +2152,14 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@ -2172,17 +2174,20 @@ @@ -2172,17 +2174,20 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"core-util-is": {
"version": "1.0.2",
@ -2299,7 +2304,8 @@ @@ -2299,7 +2304,8 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"ini": {
"version": "1.3.5",
@ -2311,6 +2317,7 @@ @@ -2311,6 +2317,7 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@ -2325,6 +2332,7 @@ @@ -2325,6 +2332,7 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@ -2332,12 +2340,14 @@ @@ -2332,12 +2340,14 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"minipass": {
"version": "2.2.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.1",
"yallist": "^3.0.0"
@ -2356,6 +2366,7 @@ @@ -2356,6 +2366,7 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
@ -2436,7 +2447,8 @@ @@ -2436,7 +2447,8 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"object-assign": {
"version": "4.1.1",
@ -2448,6 +2460,7 @@ @@ -2448,6 +2460,7 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
@ -2569,6 +2582,7 @@ @@ -2569,6 +2582,7 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@ -4470,8 +4484,7 @@ @@ -4470,8 +4484,7 @@
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
"dev": true
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
},
"restore-cursor": {
"version": "2.0.0",

1
package.json

@ -32,6 +32,7 @@ @@ -32,6 +32,7 @@
"check-types": "^7.4.0",
"is-url": "1.2.2",
"node-fetch": "^1.7.3",
"resolve-url": "^0.2.1",
"tesseract.js-core": "^2.0.0-beta.5",
"tesseract.js-utils": "^1.0.0-beta.1"
},

31
src/browser/index.js

@ -1,27 +1,34 @@ @@ -1,27 +1,34 @@
const isURL = require('is-url');
const check = require('check-types');
const resolveURL = require('resolve-url');
const { version } = require('../../package.json');
const defaultOptions = {
// workerPath: 'https://cdn.jsdelivr.net/gh/naptha/tesseract.js@0.2.0/dist/worker.js',
corePath: `https://cdn.jsdelivr.net/gh/naptha/tesseract.js-core@v2.0.0-beta.5/tesseract-core${typeof WebAssembly === 'object' ? '' : '.asm'}.js`,
langPath: 'https://cdn.jsdelivr.net/gh/naptha/tessdata@gh-pages/4.0.0/',
langPath: 'https://cdn.jsdelivr.net/gh/naptha/tessdata@gh-pages/4.0.0',
};
if (process.env.NODE_ENV === 'development') {
console.debug('Using Development Configuration');
// eslint-disable-next-line
const { protocol, host } = location;
defaultOptions.workerPath = `${protocol}//${host}/dist/worker.dev.js?nocache=${Math.random().toString(36).slice(3)}`;
defaultOptions.workerPath = resolveURL(`/dist/worker.dev.js?nocache=${Math.random().toString(36).slice(3)}`);
} else {
const { version } = require('../../package.json');
defaultOptions.workerPath = `https://cdn.jsdelivr.net/gh/naptha/tesseract.js@${version}/dist/worker.js`;
defaultOptions.workerPath = `https://cdn.jsdelivr.net/gh/naptha/tesseract.js@${version}/dist/worker.min.js`;
}
const loadImage = (imageURI) => {
if (isURL(imageURI)) {
return fetch(imageURI)
const loadImage = (image) => {
if (check.string(image)) {
return fetch(resolveURL(image))
.then(resp => resp.arrayBuffer());
}
return new Promise();
if (check.instance(image, File)) {
return new Promise((res) => {
const fileReader = new FileReader();
fileReader.onload = () => {
res(fileReader.result);
};
fileReader.readAsArrayBuffer(image);
});
}
return Promise.reject();
};
exports.defaultOptions = defaultOptions;

Loading…
Cancel
Save