Image to Text (OCR)
Extract text from images using advanced OCR.
Upload Image
JPG, PNG, BMP supported
About Image to Text Converter
Optical character recognition turns a picture of words back into words you can select, search and edit. Drop in a screenshot, a scan or a photograph of a page and the Tesseract engine reads it, showing a progress percentage as it goes and leaving the recognised text in a panel you can copy in one press.
English only, and why that is stated up front
Tesseract supports many languages, but each one needs its own trained data file of around ten megabytes. This page bundles the English model and only that model, so that everything can be served from this site rather than fetched from a third-party CDN at the moment you press go. Text in another script will not raise an error — it will simply come back as nonsense, which is worth knowing before you conclude the tool is broken. Recognition runs on the LSTM engine, the neural line recogniser, rather than the older character-matching mode.
Input quality is almost the whole story
A screenshot of a web page or a flat scan of printed type reads almost perfectly. A phone photo of a document taken at an angle, in a shadow, with the text occupying a third of the frame, reads badly — and no engine setting fixes that. The improvements that actually work are physical: shoot straight down rather than at an angle, get enough light onto the page, keep the paper flat, and fill the frame with the text. If the photo already exists, crop away the desk and background with the Image Cropper first; that single step often does more than everything else combined. PNG screenshots beat JPEG ones because JPEG artefacts cluster exactly around the fine strokes of letterforms.
What you get, and what you do not
You get the words, as plain text, with line and paragraph breaks roughly intact. You do not get formatting: tables collapse, multi-column layouts are read in whatever order the engine chooses, and text wrapped around an image is interleaved. Printed type is what the model knows; handwriting, especially cursive, produces confident-looking nonsense. If your source is a PDF that already has a text layer, do not use OCR at all — PDF to TXT pulls the real characters out with no error rate whatsoever.
The engine, its WebAssembly core and the English trained data are all delivered from this site and executed in a worker inside your browser. Your image is handed to that worker in memory and is never sent over the network, which is the reason this is a reasonable tool to point at a payslip, a contract or a photograph of an ID document. Once the engine files have been cached by your browser, the whole thing keeps working with no connection at all.
Tesseract LSTM engine
Recognition runs on the neural line recogniser rather than the older character-matching engine, which is what makes ordinary printed text read reliably instead of approximately.
English, trained data included
The English language model is served from this site rather than a third-party CDN, so the tool works on locked-down networks and keeps working offline once cached.
Genuinely local recognition
The engine is WebAssembly running in a worker on your machine. A photograph of a contract, a payslip or an ID is read without being sent anywhere.
Live progress, then plain text
A percentage bar tracks the recognition pass, and the result lands in an editable-looking panel with a one-press copy button for pasting straight into a document.
Frequently Asked Questions
Which languages does it recognise?
English only. The English trained data is the one language model bundled with this page, and there is no language selector. Text in another script — Cyrillic, Arabic, Chinese, Devanagari — will produce nonsense rather than an error. Accented Latin text in French, German or Spanish often comes out mostly right, but the model is not trained for it and accuracy will suffer.
How accurate should I expect it to be?
On a clean screenshot or a flat, well-lit scan of printed text, near perfect. On a phone photo of a page taken at an angle in poor light, considerably worse. OCR accuracy is dominated by input quality, not by the engine: sharp focus, even lighting, high contrast, and text that is horizontal and reasonably large in the frame are worth more than any setting.
How do I get a better result from a photo?
Photograph the page straight on rather than at an angle, fill the frame with the text block, avoid shadows falling across the page, and keep the paper flat. If the photo is already taken, crop it down to just the text with the Image Cropper before running it here — removing the surrounding desk and background usually improves the result more than anything else.
Does it read handwriting?
Not usefully. Tesseract is trained on printed type, and cursive or casual handwriting will come back as a scattering of plausible-looking characters. Very neat block capitals sometimes work. If you need handwriting recognised, this is the wrong class of tool.
Can I feed it a PDF?
No — this page takes images only. For a PDF that already contains a text layer, PDF to TXT extracts the real text with no recognition step and no error rate, which is always better than OCR. For a scanned PDF with no text layer, export the pages as images first with PDF to PNG and bring them here one at a time.
Which image formats work?
JPG, JPEG, PNG and BMP. PNG is the best choice for screenshots because it has no compression artefacts to confuse the recogniser. A heavily compressed JPEG of small text is the hardest case, since the artefacts sit exactly where the letterforms are.
Does the layout survive?
Partly. Line breaks and paragraph structure usually come through, but tables, multiple columns and text wrapped around images are flattened into reading order. Expect to fix the structure by hand. What you get is the words, not the formatting.
Is the image uploaded to a server?
No. The Tesseract engine, the WebAssembly core and the English trained data are all served from this site and run inside a worker in your browser. The picture is passed to that worker in memory and never over the network. Once the engine files are cached you can disconnect entirely and OCR still works.
The OCR engine failed to load.
The engine core and the language data are several megabytes and must be fetched on first use. A blocked request, an interrupted download or a very restrictive content blocker will stop that, and the tool reports it rather than hanging. Reload the page, allow this site through any blocker, and try again.