Image tools

Image to text (OCR)

Read the text out of a scan or photo. The OCR model is served from this site and runs on your device.

Runs on your device. The file is never uploaded.

Image to text (OCR) runs Tesseract across every image you drop and writes one .txt per image that produced text. The English data is 7MB and arrives only once you tick the download box; the app stores none of it. Only English data is vendored, so another script decodes as plausible rubbish.

Input

Options

Questions

Does my scan get uploaded to read the text?

No. Recognition runs on your device with Tesseract through tesseract.js, in a Web Worker in this tab. Every asset the engine needs, the worker script, the core build and the language data, is served from this site rather than a CDN, with each path passed explicitly so nothing can fall back elsewhere.

Why does it ask permission to download something?

Because the English OCR model is a 7MB download and it will not start one you did not ask for. Until the download option is enabled it stops with "Reading text out of an image needs a 7MB model downloaded to this device", and says it is served from this site and is not part of the offline bundle. Nothing is stored by the app afterwards, so the file is requested again on each run and your browser HTTP cache answers it.

Which languages can it read?

English only. One language file, eng.traineddata, is vendored, and the engine runs in its LSTM-only mode. There is no language selector, and text in another script will come back as nonsense rather than an error. It is also plain text recognition: no layout reconstruction, no tables, no columns and no searchable PDF output.

What does the low confidence warning mean?

That Tesseract itself was unsure. When its mean confidence for an image falls below 70, the heading gains a note such as "[low confidence 56% ...]" suggesting you run the file through image-rotate first if it is sideways or upside down. A turned scan does not fail; it returns confident-looking nonsense, which is worse, so the number is shown instead.

What files do I get back?

One .txt per image that produced text, named after the image, plus a combined report on the page with a "--- filename ---" heading per image. An image with nothing readable is reported as "(no text found)" and deliberately produces no .txt, since an empty file and a failed read look identical once downloaded. Drop several images and one engine handles the whole batch.

Which image formats work, and what if it hangs?

Tesseract reads PNG, JPEG, BMP, PBM and TIFF here; anything else stops with a message naming your file and that list. Nothing waits forever either: loading the engine is bounded at 60 seconds and each image at 180 seconds, after which you get an error saying the read did not finish in time and suggesting a page reload. For a scanned document, use PDF OCR instead.

Related Image tools