🔍 Image to Text (OCR)

Extract text from an image in your browser, with a per-word confidence score so you can see where the recognition is shaky. 13 languages, no upload.

Free No Signup Required Browser-Based 100% Private — AI Runs Locally
🔍

Choose an image, drop it here, or paste a screenshot

Read in this tab. The image is never uploaded.

Getting this right matters more than it sounds — the engine uses the language to decide between characters that look alike. Each language downloads its own data the first time you use it, then it is cached.

What Image to Text (OCR) Does

Optical character recognition turns a picture of text back into text, and its defining property is that it fails quietly. A bad conversion does not throw an error or return gibberish — it returns real words, spelled correctly, that are not the words on the page. "rn" becomes "m", "1" becomes "l", "0" becomes "O", and the result reads perfectly while being wrong.

That is why this page reports confidence. The engine produces a score for every word it recognises, and almost every OCR tool discards it before showing you anything. Here the overall figure is stated and every word scoring below 70% is listed, because knowing which five words to check is worth more than a slightly better average.

The other half of getting a usable result is the input. Tesseract was built for scanned documents, and its own documentation recommends at least 300 DPI. A photograph taken at an angle in poor light is nothing like that, which is most of the reason people conclude OCR "does not work". So small images are upscaled toward that target, converted to greyscale, and contrast-stretched between the 1st and 99th brightness percentiles. Those two numbers are chosen deliberately: ink is a small minority of the pixels on a page, commonly between 1 and 4%, so a more generous 5th-percentile black point lands inside the paper and the correction does nothing at all on exactly the pages that need it.

Everything runs in your browser as WebAssembly. The language data is fetched once from a CDN and cached; the image itself is never transmitted.

How to Use Image to Text (OCR)

  1. Add an image, drop it on the box, or paste a screenshot
  2. Choose the language of the text — this matters for accuracy, not just for the alphabet
  3. Leave the clean-up on unless the result looks worse with it
  4. Read the confidence figure, check the highlighted words, then copy the text

What the confidence figure means

Reported per word by the engine. The bands below are practical guidance, not thresholds defined by Tesseract.

Overall confidenceWhat to expectWhat to do
95%+Essentially clean — typically a screenshot or a proper scanUse it as-is
85–95%Good; occasional wrong character in unusual wordsSkim the highlighted words
70–85%Usable draft with real errors scattered through itProofread against the original
Below 70%Unreliable — plausible words that are often wrongRe-photograph rather than proofread

What actually improves a result, in order

Input quality dominates. No amount of post-processing rescues a photograph taken at an angle.

ChangeEffectWhy
Photograph straight on, not at an angleLargePerspective distorts letterforms the engine matches against
Get closer so the text is physically largerLargeTesseract’s documentation asks for 300 DPI or better
Even, diffuse light with no shadow across the pageLargeShadow gradients defeat a global threshold
Select the correct languageLargeThe language model resolves lookalike characters
Greyscale and contrast stretchModerateApplied here automatically
Upscaling a small imageModerateOnly helps up to a point; it adds no detail

Source: Tesseract — Improving the quality of the output

How to Read Your Result

A screenshot is the ideal input

It is already pixel-perfect, evenly lit, straight on, and at native resolution. If the text you need exists on a screen somewhere, screenshotting it will beat photographing the printed version every time — usually at well over 98% confidence.

Handwriting is out of scope, not merely hard

Tesseract is a printed-text engine with no handwriting model behind it. Neat block capitals sometimes partly come through; cursive does not. Pages advertising handwriting recognition on top of Tesseract are describing something the engine does not do.

Layout is a separate problem from recognition

The output is running text. Columns interleave, tables lose their structure and captions land wherever they fell. Reconstructing document structure from glyph positions is a genuinely harder problem than identifying the glyphs, and no tool on this search term solves it either.

Limitations & Accuracy Notes

  • Printed text only. There is no handwriting or cursive support.
  • Layout, columns, tables and reading order are not preserved — the result is running text.
  • One language at a time. A page mixing two scripts will read one of them badly.
  • Each language downloads its own trained data on first use, so the first run in a new language needs a connection.
  • Very large images are slow, because recognition runs on your own device rather than a server farm.
  • The confidence score is the engine’s own estimate. It is a good guide and it is not a guarantee — a confidently wrong word is possible.

Frequently Asked Questions

How accurate is OCR, and how would I know?
That second question is the important one, and it is the one most tools refuse to answer. OCR does not fail loudly — it returns plausible wrong words with no visible sign of trouble. The engine produces a confidence figure for every word, so this page reports the overall score and highlights every word below 70%. A clean 300 DPI scan of printed text typically runs above 95%; a phone photo at an angle can drop below 70 and still look like a confident answer.
Why does it clean up my image first?
Because Tesseract was built for scanned documents and a phone photo is not one. Its own documentation says it works best at 300 DPI or better, so small images are upscaled toward that, then converted to greyscale and contrast-stretched between the 1st and 99th brightness percentiles — 1% rather than the more usual 5% because ink is only 1 to 4% of the pixels on a typical page, so a 5th-percentile black point lands in the paper and does nothing. The page lists exactly which steps it applied.
Can it read handwriting?
No. Tesseract is a printed-text engine; there is no handwriting model behind it. Pages advertising handwriting recognition through Tesseract are overstating what it does. Neat block capitals sometimes partly work, and cursive does not work at all.
Does choosing the right language matter?
More than it sounds. The engine uses the language model to decide between characters that look alike, so reading Spanish text with the English model produces subtly wrong words rather than obvious gibberish. Each language downloads its own trained data the first time you select it, then your browser caches it.
Will it keep my layout, columns or tables?
No. The output is running text. A PDF or an image stores no notion of "this is a table" — that structure is something a reader infers from position, and reconstructing it reliably is a much harder problem than recognising the characters.
Is my image uploaded?
No. Tesseract.js runs the recognition in your browser as WebAssembly. The site is a static export with no backend, so there is nowhere to send a file. The language data is fetched from a CDN once and cached; the image itself never leaves your device.
My result is poor. What actually helps?
In order: photograph the page straight on rather than at an angle, get more light, get closer so the text is physically larger in the frame, and make sure the correct language is selected. Those beat any post-processing. If the source is a screenshot, it is already ideal — screenshots usually read near-perfectly.

References & Further Reading

By OnlineToolHubs Team • September 2026