Image to Text (OCR)

Pull the text out of a photo or scan, with the engine running inside your browser.

Runs locally, model download required

Input

Drop your file here

A photo, scan or screenshot. Images wider than 2400 px are scaled down for recognition.

or click to choose a file

Good to know

  • The engine and language data are downloaded from a public CDN on first use. Your image is processed locally and is never uploaded.
  • This is a statistical model. It is strong on printed and scanned text and weak on handwriting — always check anything important against the image.
  • The text comes out as a single stream of lines with the original line breaks. Column layouts, tables and text wrapped around images will not be preserved in reading order.
Everything runs in your browser. Your files are never uploaded.

About this tool

Recognition runs locally: the OCR engine is a WebAssembly build of Tesseract that your browser downloads and executes, so your image is never uploaded to us. What you should know before trusting it is its shape — it is a statistical model, excellent on printed and scanned text, reasonable on clear screenshots, and close to useless on handwriting or decorative lettering. For form fields, receipts and screenshots of documents, it saves a great deal of retyping. For a photo of someone's handwriting, it will confidently produce the wrong answer, and you should not use it for anything where a silent misreading is expensive.

How to use it

  1. 1Drop an image. Screenshots, scans and photos all work; around 2400 pixels on the long edge is the sweet spot and larger images are scaled down for you.
  2. 2Pick the language the text is in. Add a second language only if the page genuinely mixes two scripts — each extra language makes recognition slower and slightly less accurate.
  3. 3Run it and check the confidence score. Text below roughly 70 percent is worth proofreading against the image rather than trusting.

Frequently asked questions

Is my image uploaded anywhere?

Not to our servers — there is no server side to this tool. Recognition happens in your browser through WebAssembly. One honest caveat: the engine and language data are downloaded from a public CDN the first time you use it, which is a network request, and browsers that support it may also cache those files. Your image itself never forms part of any request.

Why is the first run slow?

The first run downloads the OCR engine and the language data for the language you picked, which takes a few seconds on a normal connection. They are then cached, so later runs start immediately. If you switch to a language you have not used before, that language's data is fetched then. The progress bar tells you which stage you are in, so a slow first run is not a hung page.

Should I turn on the contrast enhancement?

Leave it on for photographs of paper, which are usually grey and unevenly lit; pulling the levels up measurably improves recognition. Turn it off for clean screenshots where the text is already crisp black on white — there is nothing to gain, and on a screenshot with a coloured background the stretch can push thin text toward the edges.

Related tools

Browse all tools