Compare commits
186 Commits
Author | SHA1 | Date |
---|---|---|
Réda Housni Alaoui | 80aef15861 | 2 years ago |
Balearica | 263dbb87b1 | 2 years ago |
Balearica | c9200839df | 2 years ago |
Balearica | 1b87e30ae3 | 2 years ago |
Balearica | bce7cd84fe | 2 years ago |
Balearica | 2c77f33461 | 2 years ago |
Balearica | d8b29522c4 | 2 years ago |
Balearica | dd6c40b681 | 2 years ago |
Balearica | 5ff17fdeb1 | 2 years ago |
Balearica | 363690a421 | 2 years ago |
Balearica | b64eba3db0 | 2 years ago |
Balearica | 85e73216be | 2 years ago |
Balearica | b419e45114 | 2 years ago |
Balearica | ea33463120 | 2 years ago |
Balearica | 90c8d99b3c | 2 years ago |
Balearica | 0e368c69d6 | 2 years ago |
Balearica | ba394673bd | 2 years ago |
Balearica | 44d322e6ff | 2 years ago |
Balearica | e3c4a6bc6e | 2 years ago |
Balearica | f372818146 | 2 years ago |
Balearica | 8b567609e3 | 2 years ago |
Balearica | 13b95f6371 | 2 years ago |
Balearica | a9ac00ccac | 3 years ago |
Balearica | 75ddd63041 | 3 years ago |
Balearica | 1136e0a941 | 3 years ago |
Balearica | 2e478bd8a5 | 3 years ago |
WintrySnowman | 67848464ac | 3 years ago |
Balearica | be956cd889 | 3 years ago |
Balearica | 61d0e553c6 | 3 years ago |
Balearica | 74be03c5b9 | 3 years ago |
Balearica | 9442d9cb69 | 3 years ago |
Your Name | 6aba9599ec | 3 years ago |
Your Name | 58d28944d3 | 3 years ago |
Balearica | a8287a99aa | 3 years ago |
Balearica | 66085a7d70 | 3 years ago |
Susan Cheng | 50a53f51d9 | 3 years ago |
Andrei Alecu | 01e8335768 | 3 years ago |
jeromewu | adcb5b8759 | 3 years ago |
Jerome Wu | 294ced5c85 | 4 years ago |
jeromewu | 90466c3b55 | 4 years ago |
jeromewu | 7b7f9afaa6 | 4 years ago |
stonefruit | 8f2c33fd89 | 4 years ago |
Ilya | 83a424f9b9 | 4 years ago |
miguelm3 | bf43f447b6 | 4 years ago |
miguelm3 | dec119fa7b | 4 years ago |
jeromewu | 909263b94b | 4 years ago |
jeromewu | eb287e763a | 4 years ago |
Bert Verhelst | 1781487273 | 4 years ago |
Jerome Wu | 69355a7c07 | 4 years ago |
jeromewu | 4f3aa3145c | 4 years ago |
Jerome Wu | ed016bdc26 | 4 years ago |
Jerome Wu | 804c238950 | 4 years ago |
Jerome Wu | 88290dc541 | 4 years ago |
Jerome Wu | 920dd902f8 | 4 years ago |
Jerome Wu | e883f87ab7 | 4 years ago |
Jerome Wu | 34839a7a0c | 4 years ago |
Jerome Wu | e68d520155 | 4 years ago |
Jerome Wu | d98eeab91f | 4 years ago |
jeromewu | c2f4ecef9a | 4 years ago |
Jerome Wu | eb6b8594d3 | 4 years ago |
Jerome Wu | afadfffa6a | 4 years ago |
jeromewu | ccb8ec3d67 | 4 years ago |
jeromewu | d64ebcaea1 | 4 years ago |
jeromewu | 341360bf44 | 4 years ago |
jeromewu | 2cd68fb97e | 4 years ago |
jeromewu | 066c59d1f9 | 4 years ago |
Jerome Wu | 820c91fa52 | 4 years ago |
Cédric Couton | 3f98fdeb0f | 4 years ago |
abhishek7553 | cd08357833 | 4 years ago |
Jerome Wu | 2bbd1e896c | 4 years ago |
Jerome Wu | 5bad2e68ce | 4 years ago |
Jerome Wu | 59392e96ff | 4 years ago |
dependabot[bot] | 0f9cecd544 | 4 years ago |
Jerome Wu | 13ab9cec70 | 4 years ago |
dependabot[bot] | 389bf71381 | 4 years ago |
Jerome Wu | 6481256f5e | 4 years ago |
Jerome Wu | 5e295b75b6 | 4 years ago |
Jerome Wu | f3cbc3ee43 | 4 years ago |
jeromewu | 3e97749585 | 5 years ago |
dependabot[bot] | 8435f4c6e2 | 5 years ago |
jeromewu | 6ec5a5a092 | 5 years ago |
dependabot[bot] | d3cf791e6a | 5 years ago |
jeromewu | cc1f2bfe81 | 5 years ago |
jeromewu | fcd01ceb32 | 5 years ago |
Ivan Schneider | 6ef2e116cd | 5 years ago |
jeromewu | 885908f22e | 5 years ago |
Joshua Mack | 6df9ef2f1f | 5 years ago |
Joshua Mack | bb7d7093f4 | 5 years ago |
jeromewu | 40051c6761 | 5 years ago |
Connor Adams | 0ce8e139ab | 5 years ago |
rogerxaic | b221071b8e | 5 years ago |
rogerxaic | a54dbc345b | 5 years ago |
jeromewu | 1df208ffab | 5 years ago |
jeromewu | 7a398f6420 | 5 years ago |
jeromewu | ecf03503f1 | 5 years ago |
jeromewu | 0c7ade85e3 | 5 years ago |
jeromewu | d6e434338f | 5 years ago |
jeromewu | d37f045e99 | 5 years ago |
jeromewu | 50df652f33 | 5 years ago |
jeromewu | 1ff4b79f75 | 5 years ago |
jeromewu | 93dab17bf1 | 5 years ago |
Jerome Wu | 20cd04a848 | 5 years ago |
Jerome Wu | 363018bffe | 5 years ago |
Jerome Wu | 89d0a6b12d | 5 years ago |
Jerome Wu | 25d6664937 | 5 years ago |
jeromewu | a008d0780a | 5 years ago |
jeromewu | 0778add1c4 | 5 years ago |
jeromewu | 331fbbe6be | 5 years ago |
dependabot[bot] | 6d9adfd2ce | 5 years ago |
Jerome Wu | 3d456e3eb0 | 5 years ago |
Jerome Wu | 205178646b | 5 years ago |
Jerome Wu | 40aea6d886 | 5 years ago |
Jerome Wu | 6f8e69206b | 5 years ago |
Jerome Wu | c5935b2636 | 5 years ago |
jeromewu | 5a40559db2 | 5 years ago |
jeromewu | 023d484209 | 5 years ago |
jeromewu | 641d0c5fe4 | 5 years ago |
Nir | a56de79f22 | 5 years ago |
jeromewu | b418554cf0 | 5 years ago |
jeromewu | f8aa46ec9d | 5 years ago |
Tomasz Ferens | 13c16f472e | 5 years ago |
jeromewu | 247a1635f8 | 5 years ago |
Jerome Wu | 66e2ce842e | 5 years ago |
jeromewu | 2956afc013 | 5 years ago |
jeromewu | 781f2f80ba | 5 years ago |
jeromewu | 548a5a5142 | 5 years ago |
Nisar Hassan Naqvi | 9b91579b16 | 5 years ago |
jeromewu | 7cc3427a38 | 5 years ago |
Oliver Cole | 71dc2a80ed | 5 years ago |
jeromewu | 9db6ebf36e | 5 years ago |
Yvonnick FRIN | db3eed3915 | 5 years ago |
Jerome Wu | e975d29f38 | 5 years ago |
Jerome Wu | f9c76a9b7f | 5 years ago |
Jerome Wu | 945f5d3f35 | 5 years ago |
Jerome Wu | b8aba2eddd | 5 years ago |
Jerome Wu | b603d42547 | 5 years ago |
Jerome Wu | c7a74a6575 | 5 years ago |
Jerome Wu | 3bb543d3cd | 5 years ago |
Jerome Wu | fa5b267f17 | 5 years ago |
Jerome Wu | 15b7983619 | 5 years ago |
Jerome Wu | b2bc416dd2 | 5 years ago |
Jerome Wu | a5fa14cc3b | 5 years ago |
Jerome Wu | 2aba7285e9 | 5 years ago |
jeromewu | 1051b2ab41 | 5 years ago |
jeromewu | 5c22cd52bd | 5 years ago |
Andrea Giammarchi | 5a7576ceb4 | 5 years ago |
jeromewu | 2db7607496 | 5 years ago |
Andrea Giammarchi | 953689fedf | 5 years ago |
jeromewu | 0e8aee660f | 5 years ago |
jeromewu | 625ded7921 | 5 years ago |
jeromewu | 73147afd87 | 5 years ago |
jeromewu | 1a781a6ae4 | 5 years ago |
dependabot[bot] | 9c62422573 | 5 years ago |
jeromewu | 1fddc9a86c | 5 years ago |
jeromewu | 4aaf462564 | 5 years ago |
jeromewu | 7b06e0edcb | 5 years ago |
jeromewu | 663be93420 | 5 years ago |
Charles Francoise | d51d7bd8ac | 5 years ago |
Charles Francoise | 67ccfcfb6e | 5 years ago |
Charles Francoise | ebc56a1899 | 5 years ago |
Charles Francoise | bcdcace9ec | 5 years ago |
jeromewu | dd61663b31 | 5 years ago |
dependabot[bot] | f524945084 | 5 years ago |
dependabot[bot] | 7663c7c589 | 5 years ago |
dependabot[bot] | 571c8c2452 | 5 years ago |
dependabot[bot] | 775e48176c | 5 years ago |
dependabot[bot] | 4182c5d55a | 5 years ago |
jeromewu | a97e2dad98 | 5 years ago |
Johan Gustafsson | 8d926873b3 | 5 years ago |
Tomasz Martyński | b588e9f618 | 5 years ago |
jeromewu | 086c7a507a | 5 years ago |
Anthony Ng | 2de597c1a9 | 5 years ago |
Jerome Wu | 6fd12b5012 | 5 years ago |
Jerome Wu | 15da58127d | 5 years ago |
Jerome Wu | 1d28cc5e52 | 5 years ago |
Jerome Wu | 6d772c7070 | 5 years ago |
Jerome Wu | e7a57363c2 | 5 years ago |
jeromewu | fd53a9d29e | 5 years ago |
jeromewu | 06967cb7f3 | 5 years ago |
jeromewu | 61a7531acb | 5 years ago |
Jerome Wu | dc83e6f437 | 5 years ago |
jeromewu | e9017f3ed6 | 5 years ago |
Jerome Wu | 41d82da35b | 5 years ago |
Jerome Wu | d947f6e554 | 5 years ago |
Jerome Wu | 5db60be949 | 5 years ago |
Jason | 7c5172846b | 5 years ago |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
## Security contact information |
||||
|
||||
To report a security vulnerability, please use the |
||||
[Tidelift security contact](https://tidelift.com/security). |
||||
Tidelift will coordinate the fix and disclosure. |
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node |
||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions |
||||
|
||||
name: Node.js CI |
||||
|
||||
on: |
||||
push: |
||||
branches: [ master ] |
||||
pull_request: |
||||
branches: [ master ] |
||||
|
||||
jobs: |
||||
build: |
||||
|
||||
runs-on: ubuntu-latest |
||||
|
||||
strategy: |
||||
matrix: |
||||
node-version: [14.x, 16.x] |
||||
|
||||
steps: |
||||
- uses: actions/checkout@v2 |
||||
- name: Use Node.js ${{ matrix.node-version }} |
||||
uses: actions/setup-node@v1 |
||||
with: |
||||
node-version: ${{ matrix.node-version }} |
||||
- run: npm ci |
||||
- run: npm run lint |
||||
- run: npm test |
@ -0,0 +1,2 @@
@@ -0,0 +1,2 @@
|
||||
FROM gitpod/workspace-full |
||||
RUN sudo apt-get update && sudo apt-get install -y libgtk-3-0 libx11-xcb1 libnss3 libxss1 libasound2 |
@ -1,7 +1,9 @@
@@ -1,7 +1,9 @@
|
||||
image: |
||||
file: .gitpod.Dockerfile |
||||
tasks: |
||||
- command: gp await-port 3000 && sleep 3 && gp preview $(gp url 3000)/examples/browser/demo.html |
||||
- init: npm install |
||||
command: npm start |
||||
ports: |
||||
- port: 3000 |
||||
onOpen: ignore |
||||
onOpen: ignore |
||||
|
@ -1,7 +0,0 @@
@@ -1,7 +0,0 @@
|
||||
language: node_js |
||||
node_js: |
||||
- "lts/*" # Use LTS version |
||||
|
||||
script: |
||||
- npm run lint |
||||
- npm test |
@ -1,17 +1,18 @@
@@ -1,17 +1,18 @@
|
||||
# Image Format |
||||
|
||||
Support Format: **bmp, jpg, png, pbm** |
||||
The main Tesseract.js functions (ex. recognize, detect) take an `image` parameter. The image formats and data types supported are listed below. |
||||
|
||||
The main Tesseract.js functions (ex. recognize, detect) take an `image` parameter, which should be something that is like an image. What's considered "image-like" differs depending on whether it is being run from the browser or through NodeJS. |
||||
Support Image Formats: **bmp, jpg, png, pbm, webp** |
||||
|
||||
On a browser, an image can be: |
||||
- an `img`, `video`, or `canvas` element |
||||
- a `File` object (from a file `<input>`) |
||||
- a `Blob` object |
||||
- a path or URL to an accessible image |
||||
- a base64 encoded image fits `data:image\/([a-zA-Z]*);base64,([^"]*)` regexp |
||||
For browser and Node, supported data types are: |
||||
- string with base64 encoded image (fits `data:image\/([a-zA-Z]*);base64,([^"]*)` regexp) |
||||
- buffer |
||||
|
||||
In Node.js, an image can be |
||||
- a path to a local image |
||||
- a Buffer storing binary image |
||||
- a base64 encoded image fits `data:image\/([a-zA-Z]*);base64,([^"]*)` regexp |
||||
For browser only, supported data types are: |
||||
- `File` or `Blob` object |
||||
- `img` or `canvas` element |
||||
|
||||
For Node only, supported data types are: |
||||
- string containing a path to local image |
||||
|
||||
Note: images must be a supported image format **and** a supported data type. For example, a buffer containing a png image is supported. A buffer containing raw pixel data is not supported. |
After Width: | Height: | Size: 105 KiB |
After Width: | Height: | Size: 237 KiB |
@ -1,3 +1,3 @@
@@ -1,3 +1,3 @@
|
||||
# Tesseract Languages |
||||
|
||||
Please check [HERE](https://github.com/tesseract-ocr/tesseract/wiki/Data-Files#data-files-for-version-400-november-29-2016) for supported languages |
||||
Please check [HERE](https://tesseract-ocr.github.io/tessdoc/Data-Files#data-files-for-version-400-november-29-2016) for supported languages |
||||
|
@ -0,0 +1,37 @@
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE HTML> |
||||
<html> |
||||
<head> |
||||
<script src="/dist/tesseract.dev.js"></script> |
||||
</head> |
||||
<body> |
||||
<input type="file" id="uploader"> |
||||
<script> |
||||
const recognize = function(evt){ |
||||
const files = evt.target.files; |
||||
const worker = Tesseract.createWorker({ |
||||
/* |
||||
* As Edge don't support webassembly, |
||||
* here we force to use asm.js version. |
||||
*/ |
||||
corePath: '../../node_modules/tesseract.js-core/tesseract-core.asm.js', |
||||
logger: function(m){console.log(m);}, |
||||
/* |
||||
* As there is no indexedDB in earlier version |
||||
* of Edge, here we disable cache. |
||||
*/ |
||||
cacheMethod: 'none', |
||||
}); |
||||
Promise.resolve() |
||||
.then(() => worker.load()) |
||||
.then(() => worker.loadLanguage('eng')) |
||||
.then(() => worker.initialize('eng')) |
||||
.then(() => worker.recognize(files[0])) |
||||
.then((ret) => { |
||||
console.log(ret.data.text); |
||||
}); |
||||
} |
||||
const elm = document.getElementById('uploader'); |
||||
elm.addEventListener('change', recognize); |
||||
</script> |
||||
</body> |
||||
</html> |
@ -0,0 +1,33 @@
@@ -0,0 +1,33 @@
|
||||
<html> |
||||
<head> |
||||
<script src="/dist/tesseract.dev.js"></script> |
||||
</head> |
||||
<body> |
||||
<textarea id="message">Working...</textarea> |
||||
|
||||
<script> |
||||
const { createWorker } = Tesseract; |
||||
const worker = createWorker(); |
||||
(async () => { |
||||
await worker.load(); |
||||
await worker.loadLanguage('eng'); |
||||
await worker.initialize('eng'); |
||||
|
||||
const fileArr = ["../data/meditations.jpg", "../data/tyger.jpg", "../data/testocr.png"]; |
||||
let timeTotal = 0; |
||||
for (let file of fileArr) { |
||||
let time1 = Date.now(); |
||||
for (let i=0; i < 10; i++) { |
||||
await worker.recognize(file); |
||||
} |
||||
let time2 = Date.now(); |
||||
const timeDif = (time2 - time1) / 1e3; |
||||
timeTotal += timeDif; |
||||
document.getElementById('message').innerHTML += "\n" + file + " [x10] runtime: " + timeDif + "s"; |
||||
} |
||||
document.getElementById('message').innerHTML += "\nTotal runtime: " + timeTotal + "s"; |
||||
|
||||
})(); |
||||
</script> |
||||
</body> |
||||
</html> |
After Width: | Height: | Size: 1011 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 408 KiB |
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env node
|
||||
const path = require('path'); |
||||
const { createWorker } = require('../../'); |
||||
|
||||
const worker = createWorker(); |
||||
|
||||
(async () => { |
||||
await worker.load(); |
||||
await worker.loadLanguage('eng'); |
||||
await worker.initialize('eng'); |
||||
const fileArr = ["../data/meditations.jpg", "../data/tyger.jpg", "../data/testocr.png"]; |
||||
let timeTotal = 0; |
||||
for (let file of fileArr) { |
||||
let time1 = Date.now(); |
||||
for (let i=0; i < 10; i++) { |
||||
await worker.recognize(file) |
||||
} |
||||
let time2 = Date.now(); |
||||
const timeDif = (time2 - time1) / 1e3; |
||||
timeTotal += timeDif; |
||||
|
||||
console.log(file + " [x10] runtime: " + timeDif + "s"); |
||||
} |
||||
console.log("Total runtime: " + timeTotal + "s"); |
||||
|
||||
await worker.terminate(); |
||||
})(); |
@ -1,13 +1,20 @@
@@ -1,13 +1,20 @@
|
||||
#!/usr/bin/env node
|
||||
const path = require('path'); |
||||
const Tesseract = require('../../'); |
||||
const { createWorker } = require('../../'); |
||||
|
||||
const [,, imagePath] = process.argv; |
||||
const image = path.resolve(__dirname, (imagePath || '../../tests/assets/images/cosmic.png')); |
||||
|
||||
console.log(`Recognizing ${image}`); |
||||
const worker = createWorker({ |
||||
logger: m => console.log(m), |
||||
}); |
||||
|
||||
Tesseract.recognize(image, 'eng', { logger: m => console.log(m) }) |
||||
.then(({ data: { text } }) => { |
||||
console.log(text); |
||||
}); |
||||
(async () => { |
||||
await worker.load(); |
||||
await worker.loadLanguage('eng'); |
||||
await worker.initialize('eng'); |
||||
const { data: { text } } = await worker.recognize(image); |
||||
console.log(text); |
||||
await worker.terminate(); |
||||
})(); |
||||
|
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
import commonjs from "@rollup/plugin-commonjs"; |
||||
|
||||
export default [ |
||||
{ |
||||
input: "dist/tesseract.min.js", |
||||
output: { |
||||
file: "dist/tesseract.esm.min.js", |
||||
format: "esm", |
||||
banner: "/* eslint-disable */", |
||||
}, |
||||
plugins: [commonjs()], |
||||
}, |
||||
]; |
@ -0,0 +1,218 @@
@@ -0,0 +1,218 @@
|
||||
/* |
||||
* languages with existing tesseract traineddata |
||||
* https://tesseract-ocr.github.io/tessdoc/Data-Files#data-files-for-version-400-november-29-2016
|
||||
*/ |
||||
|
||||
/** |
||||
* @typedef {object} Languages |
||||
* @property {string} AFR Afrikaans |
||||
* @property {string} AMH Amharic |
||||
* @property {string} ARA Arabic |
||||
* @property {string} ASM Assamese |
||||
* @property {string} AZE Azerbaijani |
||||
* @property {string} AZE_CYRL Azerbaijani - Cyrillic |
||||
* @property {string} BEL Belarusian |
||||
* @property {string} BEN Bengali |
||||
* @property {string} BOD Tibetan |
||||
* @property {string} BOS Bosnian |
||||
* @property {string} BUL Bulgarian |
||||
* @property {string} CAT Catalan; Valencian |
||||
* @property {string} CEB Cebuano |
||||
* @property {string} CES Czech |
||||
* @property {string} CHI_SIM Chinese - Simplified |
||||
* @property {string} CHI_TRA Chinese - Traditional |
||||
* @property {string} CHR Cherokee |
||||
* @property {string} CYM Welsh |
||||
* @property {string} DAN Danish |
||||
* @property {string} DEU German |
||||
* @property {string} DZO Dzongkha |
||||
* @property {string} ELL Greek, Modern (1453-) |
||||
* @property {string} ENG English |
||||
* @property {string} ENM English, Middle (1100-1500) |
||||
* @property {string} EPO Esperanto |
||||
* @property {string} EST Estonian |
||||
* @property {string} EUS Basque |
||||
* @property {string} FAS Persian |
||||
* @property {string} FIN Finnish |
||||
* @property {string} FRA French |
||||
* @property {string} FRK German Fraktur |
||||
* @property {string} FRM French, Middle (ca. 1400-1600) |
||||
* @property {string} GLE Irish |
||||
* @property {string} GLG Galician |
||||
* @property {string} GRC Greek, Ancient (-1453) |
||||
* @property {string} GUJ Gujarati |
||||
* @property {string} HAT Haitian; Haitian Creole |
||||
* @property {string} HEB Hebrew |
||||
* @property {string} HIN Hindi |
||||
* @property {string} HRV Croatian |
||||
* @property {string} HUN Hungarian |
||||
* @property {string} IKU Inuktitut |
||||
* @property {string} IND Indonesian |
||||
* @property {string} ISL Icelandic |
||||
* @property {string} ITA Italian |
||||
* @property {string} ITA_OLD Italian - Old |
||||
* @property {string} JAV Javanese |
||||
* @property {string} JPN Japanese |
||||
* @property {string} KAN Kannada |
||||
* @property {string} KAT Georgian |
||||
* @property {string} KAT_OLD Georgian - Old |
||||
* @property {string} KAZ Kazakh |
||||
* @property {string} KHM Central Khmer |
||||
* @property {string} KIR Kirghiz; Kyrgyz |
||||
* @property {string} KOR Korean |
||||
* @property {string} KUR Kurdish |
||||
* @property {string} LAO Lao |
||||
* @property {string} LAT Latin |
||||
* @property {string} LAV Latvian |
||||
* @property {string} LIT Lithuanian |
||||
* @property {string} MAL Malayalam |
||||
* @property {string} MAR Marathi |
||||
* @property {string} MKD Macedonian |
||||
* @property {string} MLT Maltese |
||||
* @property {string} MSA Malay |
||||
* @property {string} MYA Burmese |
||||
* @property {string} NEP Nepali |
||||
* @property {string} NLD Dutch; Flemish |
||||
* @property {string} NOR Norwegian |
||||
* @property {string} ORI Oriya |
||||
* @property {string} PAN Panjabi; Punjabi |
||||
* @property {string} POL Polish |
||||
* @property {string} POR Portuguese |
||||
* @property {string} PUS Pushto; Pashto |
||||
* @property {string} RON Romanian; Moldavian; Moldovan |
||||
* @property {string} RUS Russian |
||||
* @property {string} SAN Sanskrit |
||||
* @property {string} SIN Sinhala; Sinhalese |
||||
* @property {string} SLK Slovak |
||||
* @property {string} SLV Slovenian |
||||
* @property {string} SPA Spanish; Castilian |
||||
* @property {string} SPA_OLD Spanish; Castilian - Old |
||||
* @property {string} SQI Albanian |
||||
* @property {string} SRP Serbian |
||||
* @property {string} SRP_LATN Serbian - Latin |
||||
* @property {string} SWA Swahili |
||||
* @property {string} SWE Swedish |
||||
* @property {string} SYR Syriac |
||||
* @property {string} TAM Tamil |
||||
* @property {string} TEL Telugu |
||||
* @property {string} TGK Tajik |
||||
* @property {string} TGL Tagalog |
||||
* @property {string} THA Thai |
||||
* @property {string} TIR Tigrinya |
||||
* @property {string} TUR Turkish |
||||
* @property {string} UIG Uighur; Uyghur |
||||
* @property {string} UKR Ukrainian |
||||
* @property {string} URD Urdu |
||||
* @property {string} UZB Uzbek |
||||
* @property {string} UZB_CYRL Uzbek - Cyrillic |
||||
* @property {string} VIE Vietnamese |
||||
* @property {string} YID Yiddish |
||||
*/ |
||||
|
||||
/** |
||||
* @type {Languages} |
||||
*/ |
||||
module.exports = { |
||||
AFR: 'afr', |
||||
AMH: 'amh', |
||||
ARA: 'ara', |
||||
ASM: 'asm', |
||||
AZE: 'aze', |
||||
AZE_CYRL: 'aze_cyrl', |
||||
BEL: 'bel', |
||||
BEN: 'ben', |
||||
BOD: 'bod', |
||||
BOS: 'bos', |
||||
BUL: 'bul', |
||||
CAT: 'cat', |
||||
CEB: 'ceb', |
||||
CES: 'ces', |
||||
CHI_SIM: 'chi_sim', |
||||
CHI_TRA: 'chi_tra', |
||||
CHR: 'chr', |
||||
CYM: 'cym', |
||||
DAN: 'dan', |
||||
DEU: 'deu', |
||||
DZO: 'dzo', |
||||
ELL: 'ell', |
||||
ENG: 'eng', |
||||
ENM: 'enm', |
||||
EPO: 'epo', |
||||
EST: 'est', |
||||
EUS: 'eus', |
||||
FAS: 'fas', |
||||
FIN: 'fin', |
||||
FRA: 'fra', |
||||
FRK: 'frk', |
||||
FRM: 'frm', |
||||
GLE: 'gle', |
||||
GLG: 'glg', |
||||
GRC: 'grc', |
||||
GUJ: 'guj', |
||||
HAT: 'hat', |
||||
HEB: 'heb', |
||||
HIN: 'hin', |
||||
HRV: 'hrv', |
||||
HUN: 'hun', |
||||
IKU: 'iku', |
||||
IND: 'ind', |
||||
ISL: 'isl', |
||||
ITA: 'ita', |
||||
ITA_OLD: 'ita_old', |
||||
JAV: 'jav', |
||||
JPN: 'jpn', |
||||
KAN: 'kan', |
||||
KAT: 'kat', |
||||
KAT_OLD: 'kat_old', |
||||
KAZ: 'kaz', |
||||
KHM: 'khm', |
||||
KIR: 'kir', |
||||
KOR: 'kor', |
||||
KUR: 'kur', |
||||
LAO: 'lao', |
||||
LAT: 'lat', |
||||
LAV: 'lav', |
||||
LIT: 'lit', |
||||
MAL: 'mal', |
||||
MAR: 'mar', |
||||
MKD: 'mkd', |
||||
MLT: 'mlt', |
||||
MSA: 'msa', |
||||
MYA: 'mya', |
||||
NEP: 'nep', |
||||
NLD: 'nld', |
||||
NOR: 'nor', |
||||
ORI: 'ori', |
||||
PAN: 'pan', |
||||
POL: 'pol', |
||||
POR: 'por', |
||||
PUS: 'pus', |
||||
RON: 'ron', |
||||
RUS: 'rus', |
||||
SAN: 'san', |
||||
SIN: 'sin', |
||||
SLK: 'slk', |
||||
SLV: 'slv', |
||||
SPA: 'spa', |
||||
SPA_OLD: 'spa_old', |
||||
SQI: 'sqi', |
||||
SRP: 'srp', |
||||
SRP_LATN: 'srp_latn', |
||||
SWA: 'swa', |
||||
SWE: 'swe', |
||||
SYR: 'syr', |
||||
TAM: 'tam', |
||||
TEL: 'tel', |
||||
TGK: 'tgk', |
||||
TGL: 'tgl', |
||||
THA: 'tha', |
||||
TIR: 'tir', |
||||
TUR: 'tur', |
||||
UIG: 'uig', |
||||
UKR: 'ukr', |
||||
URD: 'urd', |
||||
UZB: 'uzb', |
||||
UZB_CYRL: 'uzb_cyrl', |
||||
VIE: 'vie', |
||||
YID: 'yid', |
||||
}; |
@ -1,10 +1,21 @@
@@ -1,10 +1,21 @@
|
||||
const isElectron = require('is-electron'); |
||||
|
||||
module.exports = (key) => { |
||||
const env = { |
||||
type: (typeof window !== 'undefined') && (typeof window.document !== 'undefined') ? 'browser' : 'node', |
||||
}; |
||||
const env = {}; |
||||
|
||||
if (typeof WorkerGlobalScope !== 'undefined') { |
||||
env.type = 'webworker'; |
||||
} else if (isElectron()) { |
||||
env.type = 'electron'; |
||||
} else if (typeof window === 'object') { |
||||
env.type = 'browser'; |
||||
} else if (typeof process === 'object' && typeof require === 'function') { |
||||
env.type = 'node'; |
||||
} |
||||
|
||||
if (typeof key === 'undefined') { |
||||
return env; |
||||
} |
||||
|
||||
return env[key]; |
||||
}; |
||||
|
@ -1 +0,0 @@
@@ -1 +0,0 @@
|
||||
module.exports = require('resolve-url'); |
@ -1 +0,0 @@
@@ -1 +0,0 @@
|
||||
module.exports = s => s; |
@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
|
||||
<html> |
||||
<head> |
||||
<meta charset="utf-8"> |
||||
<link rel="stylesheet" href="../node_modules/mocha/mocha.css"> |
||||
</head> |
||||
<body> |
||||
<div id="mocha"></div> |
||||
<script src="../node_modules/mocha/mocha.js"></script> |
||||
<script src="../node_modules/expect.js/index.js"></script> |
||||
<script src="../dist/tesseract.dev.js"></script> |
||||
<script src="./constants.js"></script> |
||||
<script>mocha.setup('bdd');</script> |
||||
<script src="./FS.test.js"></script> |
||||
<script> |
||||
mocha.run(); |
||||
</script> |
||||
</body> |
||||
</html> |
@ -0,0 +1,37 @@
@@ -0,0 +1,37 @@
|
||||
const { createWorker } = Tesseract; |
||||
const FS_WAIT = 500; |
||||
const worker = createWorker(OPTIONS); |
||||
before(function cb() { |
||||
this.timeout(0); |
||||
return worker.load(); |
||||
}); |
||||
|
||||
describe('FS', async () => { |
||||
it('should write and read text from FS (using FS only)', () => { |
||||
[ |
||||
SIMPLE_TEXT, |
||||
].forEach(async (text) => { |
||||
const path = 'tmp.txt'; |
||||
await worker.FS('writeFile', [path, SIMPLE_TEXT]); |
||||
setTimeout(async () => { |
||||
const { data } = await worker.FS('readFile', [path]); |
||||
await worker.FS('unlink', [path]); |
||||
expect(data.toString()).to.be(text); |
||||
}, FS_WAIT); |
||||
}); |
||||
}).timeout(TIMEOUT); |
||||
|
||||
it('should write and read text from FS (using writeFile, readFile)', () => { |
||||
[ |
||||
SIMPLE_TEXT, |
||||
].forEach(async (text) => { |
||||
const path = 'tmp2.txt'; |
||||
await worker.writeText(path, SIMPLE_TEXT); |
||||
setTimeout(async () => { |
||||
const { data } = await worker.readText(path); |
||||
await worker.removeFile(path); |
||||
expect(data.toString()).to.be(text); |
||||
}, FS_WAIT); |
||||
}); |
||||
}).timeout(TIMEOUT); |
||||
}); |
After Width: | Height: | Size: 1011 B |
After Width: | Height: | Size: 3.7 KiB |