IMAGE TO TEXT (OCR)

Upload a photo or scan of a document and extract the text from it. Works with PNG, JPG, GIF, WebP, BMP and TIFF files up to 15 MB.

Click to choose or drag & drop an image here

PNG, JPG, GIF, WebP, BMP or TIFF · max 15 MB

·

Privacy note: this tool uploads your image to the server so it can run the OCR engine, and a copy of every file is saved in the dev/uploads folder. Don’t upload anything you need to keep private.

Image

Preview of the uploaded image

No results yet

Choose an image and press Run OCR — the extracted text will show up here.

What OCR does well — and what it doesn't

Clean printed text

This is the easy case: typed or printed pages, sharp screenshots, scans at 300 DPI or better. Expect near-perfect results on a straight, well-lit page.

Photos of documents

Workable if the page fills the frame, is lit evenly and is not at an angle. Crooked, shadowed or flash-blown photos are where accuracy falls apart.

Handwriting

No. Tesseract is trained on printed type — cursive and block capitals come back as confident nonsense, which is worse than nothing because it is hard to spot.

Tables and columns

Shaky. The engine reads lines of pixels, so multi-column layouts, tables and sidebars can interleave. Extract one column at a time when it matters.

How to get a better result

  1. Crop to the text. Anything else in the frame — margins, logos, a hand holding the page — is just noise for the engine to misread.
  2. Straighten it. Even a few degrees of tilt confuses the line detection; most phone photo editors have a straighten tool.
  3. Go bigger, not smaller. Roughly 300 DPI is the sweet spot. Upscaling a blurry 72 DPI image does not add detail that was never there.
  4. Maximise contrast. Black text on white is ideal. Grey-on-grey, low-contrast scans on yellowed paper and page shadows are the usual culprits behind a garbled result.
  5. One language at a time. This instance is running the English language data, so non-English text will come out creatively misspelled.

What happens to your image

This tool is the one place on 2RE Club where your file leaves your browser: OCR runs on the server, so the image is uploaded, saved in the server's uploads folder, and the extracted text is written next to it as <filename>.ocr.txt.

uploads is never served publicly and is not web-accessible from the internet — it can only be browsed through the password-protected /secret dashboard, which only I have the password for. There is no automatic deletion yet: files stay until I clear them out. Do not upload passports, ID documents, contracts or anything else you need to keep private.

The OCR engine runs on this site's own server, so the tool needs the Node app behind it. On a static copy of the site the upload fails with an error rather than silently sending your image somewhere else. When the result card says “Saved as … in the uploads folder”, the file is on this server and nowhere else.

Frequently asked questions

PNG, JPG/JPEG, GIF, WebP, BMP and TIFF, up to 15 MB. One image per run: a multi-page file is not split up for you, so extract the pages you need first. PDFs are not accepted — export or screenshot the page as an image instead.

Usually one of five things: the image is rotated or slanted, it is too low-resolution, the contrast is poor (grey text, shadow across the page), the text is handwriting, or the page has columns and the engine has read across them. The confidence badge above the result is a decent hint: below about 70% means it struggled.

No. The engine recognises printed type. Handwriting comes back as plausible-looking words that are wrong, so always eyeball the output before you trust it.

The engine and its English language data (about 11 MB) load the first time somebody uses the tool. After that the worker stays in memory and runs get much faster — until the server restarts, at which point the first run pays the cost again.

Use judgement. Files are stored on this server and kept out of public reach, but they are not encrypted and they are not deleted automatically. A shopping receipt is usually fine; anything with an ID number, a signature, a bank detail or a client's personal information is not.

Screenshots are one of the best cases — they are pixel-sharp with clean edges. Charts are the worst: axis labels, legends and rotated labels get jumbled together. Crop to the label you need and run that on its own.

Related tools

Count the words, characters and sentences in the text you just extracted.

Paste the output here to clean up the words the scanner misread.

Load a public page and copy text out of it when the site fights you.