Image to text (OCR)

Your images are processed in your browser and never uploaded.

Choose, drop or paste a screenshot, scan or photo of printed text, pick the language, and press Read text. You get editable text that you can copy or save as a .txt file. It works best on clear printed text; handwriting is usually not recognised.

Language of the text (up to 3)

How it works

This page uses Tesseract.js, a version of the open-source Tesseract OCR engine that runs inside your browser as WebAssembly. All the files it needs are served from this site, not from another server.

  1. Prepare the image. Your browser opens the image and draws it on a hidden canvas, on a white background. Small images are enlarged (up to 3 times, to about 1,200 pixels wide) because Tesseract reads letters best when they are 20 to 40 pixels tall; very large images are reduced to 25 megapixels. If you chose a rotation or black and white, they are applied here.
  2. Load the engine. Only when you press Read text for the first time, the page downloads the engine (about 4 MB) and the language data you picked. It runs in a background worker, so the page stays responsive.
  3. Read. Tesseract finds the lines of text and recognises each line with a neural network (LSTM) trained for that language. It also reports how confident it is.
  4. Tidy. Trailing spaces and long runs of empty lines are removed. You can edit the result before copying or downloading it.

Black and white turns the image grey and then picks the single brightness level that best separates dark from light pixels (Otsu's method), making every pixel pure black or white. It helps most with coloured backgrounds or uneven light. Tesseract already does a similar step internally, so on clean screenshots it makes no difference.

Languages and download sizes

English is selected by default. Each language is downloaded only the first time you use it in a visit:

  • English: 2.0 MB
  • Arabic: 0.7 MB
  • French: 0.6 MB
  • Spanish: 1.1 MB
  • German: 0.9 MB
  • Hindi: 0.9 MB
  • Bengali: 0.6 MB

The engine itself is about 4 MB. You can choose up to three languages at once, for example English and Arabic for a bilingual document; more languages make OCR slower. The language models are the "fast" Tesseract models, a good balance of size and accuracy.

Worked example

We made a 666 × 222 pixel PNG with three lines of black text (DejaVu Sans) on white and ran it through this page with English selected:

Invoice 2026-0142
Total due: AED 1,575.00
Please pay by 15 November 2026.

Result: all three lines came back exactly as above, 12 words, average confidence 95%. Because the image is small, the tool enlarged it to 1200 × 400 pixels before reading it. The same text turned on its side came back exactly too once Rotate was set to 90° anticlockwise, and so did a copy with brown text on an orange background with Black and white turned on. A French version ("Facture numéro 58 / Échéance : le 3 décembre 2026") came back exactly, accents included, with French selected. On a desktop computer each read took under a second once the engine had loaded. Real photos, with shadows, curves and smaller text, will not do as well as these clean samples.

How accurate is it?

  • Works well: screenshots, scanned documents and sharp photos of printed text in one of the chosen languages, with dark text on a light background.
  • Struggles with: handwriting (usually not recognised at all), stylised or decorative fonts, text on busy pictures, blurry or very low-resolution photos, curved pages and tables (the text comes out, but the columns do not).
  • Always check the result, especially numbers: OCR can confuse similar shapes such as 0 and O, 1 and l, or 5 and S. A low average confidence (under about 60%) is a sign to look closely.

FAQ

Is my image uploaded?

No. Your images are processed in your browser and never uploaded. The page only downloads the OCR engine and language files from this site.

Can it read handwriting?

Generally no. Tesseract is trained on printed text. Neat block capitals sometimes work; joined-up handwriting almost never does.

Can I use it on a PDF?

Not directly. Take a screenshot of the page or export it as an image first. If the PDF already contains real text (you can select words in your PDF reader), copying that text is more accurate than OCR.

The text came out in the wrong order or with odd line breaks. Why?

OCR reads blocks of text it detects on the page. Multi-column layouts, tables and text boxes can come out in an unexpected order. Cropping the image to one column at a time usually fixes it.

Why is the first run slow?

The first time, the browser has to download and start the engine and the language data, a few megabytes. Reading a second image in the same visit is much faster.

Is there a size limit?

Images up to 50 MB are accepted; anything larger than 25 megapixels is reduced before reading. On a phone, very large photos can be slow.

Credits

OCR by Tesseract.js 7.0.0 and tesseract.js-core (Apache-2.0), with the Tesseract engine (Apache-2.0) and Leptonica, and language data from tessdata_fast (Apache-2.0). All are stored on this site with their licence notices.