Skip to main content

Image to Text Converter

Turn any picture of text — a screenshot, a scan, a photo of a document — into selectable, copyable text without uploading it. The page runs the Tesseract OCR engine in your browser, cleans the output, and shows a confidence score plus word-level boxes so you can see exactly what was read.

Local-only

Heads up: OCR runs a neural network in your browser. Large images take longer and use more memory on modest devices — smaller images finish much faster.

Drop images with text

or drop anywhere on this page · Choose files · 100 MB

Accepted: JPG, JPEG, PNG, WebP, AVIF, GIF, BMP, HEIC, HEIF, SVG

Recognition runs entirely in your browser. The engine and the language model download once from this site (about 7 MB for English) and are cached afterwards; your images never leave this device.
Best on printed text — screenshots, scans and photos of documents. Handwriting is unreliable, and tiny or decorative fonts confuse the engine.

How does Image to Text Converter work?

Optical character recognition is two problems wearing one name: finding where the text is, and deciding what each blob of pixels says. Tesseract — the engine this page runs, compiled to WebAssembly — solves the second with a long short-term memory (LSTM) neural network trained on millions of rendered text lines, and the first with a line-and-word finder tuned over thirty years of scanned documents. The whole pipeline runs in this tab; nothing is sent anywhere.

Why the image is cleaned first

The LSTM was trained on dark text on light backgrounds, so the page normalises every image before recognition: transparency is flattened onto white, the picture is reduced to grayscale, and a contrast stretch maps the 1st and 99th brightness percentiles to black and white. That one cheap pass fixes most “photo of a page taken at an angle” inputs — glare spots and grey paper stop mattering — and it is why a phone photo of a receipt works at all.

What the confidence score means

Every recognised word comes with a confidence number, and the badge on each result is their average. Above 90 is a clean scan you can trust; 70–90 is a photo with some struggle, worth skimming; below 70 the engine is guessing and you should read the text yourself. The word boxes exist for exactly this: toggle them on and the page outlines every word it claims to have read, so a misread line is visible at a glance instead of hiding in the paragraph.

The honest limits

Printed text is the home turf; handwriting is not. Cursive defeats the line model, decorative fonts defeat the character model, and text smaller than about 20 pixels tall has too few pixels per stroke for the LSTM to work with. The page says this up front because an OCR tool that pretends otherwise just wastes your time — if the confidence badge comes back red, the image needs a better photo, not a second click.

Example input

receipt.jpg — a phone photo of a paper receipt

Example output

Plain text of every line, ready to copy or download as .txt

What options and edge cases does Image to Text Converter support?

Options
ParameterTypeDefaultBehaviour & edge cases
Recognition language6 languagesEnglishThe LSTM model is language-specific: pick the language of the text for far fewer misreads. English, Spanish, German, French, Portuguese and Japanese models are offered.
PreprocessingautomaticOnGrayscale plus a percentile-clipped contrast stretch, applied to every image before recognition. There is no off switch because turning it off only ever hurts.
Word boxestoggleOffOutlines every recognised word on the image, in the engine's own coordinates — the fastest way to spot a misread line.
Batchmultiple files—Drop several images; they are recognised one after another with a single worker, each with its own text, confidence and download.
Input cap25 MP / 2000px—Images over 25 megapixels are declined, and recognition runs at most 2000px on the long side — beyond that a phone runs out of memory long before accuracy improves.

Frequently asked questions

Is my image uploaded anywhere?

No. Decoding, preprocessing and recognition all run in this tab — the Tesseract engine is compiled to WebAssembly and executes locally. The only network traffic is the one-time download of the engine and language model (about 7 MB for English) from this site, which is cached afterwards. Open DevTools on the Network panel and recognise something: no image data is ever sent.

Which languages can it read?

English, Spanish, German, French, Portuguese and Japanese, each with its own trained model. Pick the language of the text before recognising — a German model reading English text (or the reverse) misreads far more, because the LSTM's expectations about letter sequences are language-specific. Mixed-language pages are best run once per language.

Can it read handwriting?

Unreliably, and the page says so instead of pretending. Tesseract's models are trained on printed text; neat block capitals sometimes survive, cursive almost never does. If handwriting is your use case, you need a specialised handwriting model — this tool will tell you its confidence is low rather than hand you confident nonsense.

What does the confidence score tell me?

It is the engine's own average word confidence, 0–100. Treat 90+ as trustworthy, 70–90 as worth a skim, and below 70 as a signal to photograph the page again — better light, flatter paper, closer up — rather than to re-run. Toggle the word boxes to see exactly which words the engine was unsure about.

Why is there a size limit on images?

Recognition is CPU-bound and memory-hungry: a 25-megapixel photo needs hundreds of megabytes of working memory inside the WASM engine. The tool declines larger images instead of freezing your tab, and recognises at most 2000px on the long side, past which accuracy on printed text stops improving anyway.

How is this different from taking a photo with Google Lens?

Lens uploads your photo to Google's servers and is genuinely better at hard cases — handwriting, scene text, translation. This tool's advantage is the opposite: your document never leaves your device, which is what you want for receipts, IDs, contracts and anything else you would not email to a stranger. For clean printed text the accuracy gap is small.