ToolForge
Advertisement

Image to Text (OCR)

Extract text from images, with the controls that make OCR work

Written by ToolForgeLast reviewed How we build and check these tools

Image to Text (OCR) tool

Image to Text (OCR): key facts

What it does
Extract text from images, with the controls that make OCR work
Category
Text Tools
Cost
Free, with no account, sign-up, or install.
Your data
Runs entirely in your browser — the files and text you enter are never uploaded to a server.
Last reviewed
. Report an incorrect result.
Advertisement

About the Image to Text (OCR)

A receipt you need to expense, a screenshot of an error message, a page from a book you want to quote — the text is right there in the picture and you cannot select it. This tool runs the Tesseract OCR engine inside your browser through WebAssembly and turns the picture into text you can edit, copy or save. The image is processed on your own device and is never uploaded, which is what makes it usable for receipts, ID scans and internal documents.

Most OCR pages give you an upload box and a button, and when the result is poor the only advice on offer is to find a better photo. That is often not possible — the receipt is creased, the room was dim, the sign is at an angle. So the controls that actually decide whether recognition works are here: drag a region so only the part you care about is read, clean the image up first with grayscale, contrast and a black-and-white threshold while watching a live preview, rotate a sideways photo, straighten a tilted scan, upscale small type, and tell the engine what shape the text is in — because a receipt, a sign and a book page are not the same problem.

When it finishes, every word is outlined on the image and coloured by the engine's own confidence, and the least certain ones are listed underneath so you can hover one and see exactly where it sits. Save the result as plain text, as a JSON list of every word with its position, or as a searchable PDF — the image exactly as it looks, with the recognised text laid invisibly behind it.

How to use it

  1. Add images — drop them, paste a screenshot with Ctrl+V, or click to browse. Several at a time is fine; they run one after another.
  2. Check the preview. Rotate if the photo is sideways, and press Region and drag if you only want part of the image.
  3. If it is a photo, a shadowed scan, or light text on a dark background, turn on Grayscale and Threshold and watch the preview until the text is clean black on white.
  4. Say what shape the text is in — a document, a single column, one line, one word, or text scattered around — and select every language the image uses.
  5. Press Extract text. The first run downloads the OCR engine; after that it starts immediately, and Cancel stops a long run.
  6. Read the boxed words: amber and red are the engine's own doubts. Fix them in the text box, then copy, download the .txt, or build a searchable PDF.

The setting nobody changes, and the one that fixes most bad results

Before Tesseract reads a single letter it decides what kind of page it is looking at, and that assumption governs everything after it. Its default is full layout analysis: find the columns, order the blocks, work out the reading order. On a scanned page that is exactly right. On a photo of a road sign, a supermarket receipt, or a cropped screenshot of one dialog box, it is looking for a structure that is not there, and the usual symptom is not an error — it is a handful of words in the wrong order with plausible-looking gibberish between them.

That is what the "What shape is the text?" control changes. A single column suits a receipt or a narrow crop. One block treats the whole image as a single paragraph and skips layout analysis entirely. A single line or a single word are for a crop of one field — a serial number, a licence plate, a meter reading. Scattered text is the mode for a sign, a diagram or a user interface, where words sit in no particular relationship to each other. Switching from the default to the right one of those is, in a great many cases, the whole fix.

Two smaller controls pair with it. Restricting the characters to digits stops a serial number reading a zero as a capital O, which is the single most common OCR mistake on numeric fields, because the engine will no longer even consider a letter. And keeping runs of spaces helps a table or a two-column list keep its shape instead of collapsing into single-spaced text.

  • A receipt total read as a document may reorder columns; read as a single column it stays in order.
  • A crop of one serial number: one word, digits only.
  • A screenshot of a menu bar: scattered text.

Why use this version

  • Your image is processed on your own device — recognition runs in a WebAssembly worker in the browser, so the photo is never uploaded, which matters for receipts, IDs and internal documents.
  • The controls that decide whether OCR works are exposed rather than hidden: a region to read, image cleanup with a live preview, rotation and straightening, upscaling, and the page-shape setting that most often explains a poor result.
  • Confidence is reported per word and drawn on the image, so "check the output" points at the few words worth checking instead of the whole page.
  • Several languages can be selected together for a page that mixes them, from a set of 34 covering Latin, Cyrillic, Greek, Hebrew, Arabic, Indic, CJK and Thai scripts.
  • Queue a stack of images and they run in sequence into one combined text file, with a Cancel button for when a run is taking too long.
  • Results save as plain text, as JSON with every word's position and confidence, or as a searchable PDF that looks exactly like the original.

Cleaning the image, and what the confidence numbers are for

OCR engines want black text on a white background with clean edges. A phone photo gives them grey text on an unevenly lit background with a colour cast, and the standard remedy is not a better camera but a threshold: turn everything above a brightness level pure white and everything below it pure black. That is the Threshold control, and the slider next to it is the level — drag it while watching the preview until the letters are solid and the paper is blank. Grayscale and contrast get you there faster on a colour photo, and Invert handles light text on a dark background, which otherwise recognises very poorly. Upscaling helps when the type is genuinely small, because the recogniser has a minimum size below which strokes blur together. All of this is applied to a working copy that exists only to feed the engine; your file is never altered and the cleaned-up image is not offered as a download, because that is what the image editing tools are for.

Straighten and rotate are different jobs and it is worth knowing which you need. Straighten measures the slope of the text lines and corrects a few degrees of tilt, the sort a hand-held scan picks up. It will not notice that a photo is on its side — that is what the rotate buttons are for, and a sideways image recognises as almost nothing until you turn it.

Afterwards, the numbers. The page confidence is a useful headline but a blunt one: an average over hundreds of words tells you the result is imperfect without telling you where. Per-word confidence does, and it is what the outlines on the image show — green where the engine is sure, amber where it is hedging, red where it is guessing. The list of least-certain words underneath is ordered worst first, and hovering one highlights its box, so proofreading becomes checking four words rather than re-reading the page. The threshold for what counts as suspect is adjustable, because a strict setting suits a document you are going to rely on and a loose one suits a rough transcription.

  • A shadowed page: Grayscale, then Threshold, then drag the level until the shadow disappears.
  • White text on a dark slide: Invert.
  • A word at 41% confidence is a guess; one at 96% is not.

Frequently Asked Questions

The result is wrong or empty. What should I change first?

In this order. First, the shape setting — a receipt, a sign or a cropped field is not "a document", and the wrong choice produces jumbled or missing text rather than an error. Second, use Region to read only the part you care about, so background clutter is excluded. Third, if it is a photo or an unevenly lit scan, turn on Grayscale and Threshold and drag the level until the preview is clean black on white. Fourth, rotate if the image is sideways and upscale if the type is small. Last, check that the selected languages match what is actually written.

Can it keep the formatting — bold, fonts, colours?

Not as text, and no OCR tool can honestly claim otherwise: a .txt file has nowhere to store styling, and Tesseract does not reliably detect it. What is preserved in the text output is line breaks, paragraph grouping and reading order, rebuilt from the engine's block structure. If what you actually need is a document that still looks like the original but has selectable text, use the searchable PDF option — it keeps the image exactly as it is and lays the recognised text invisibly behind it. That is the only accurate way to have both.

Is my image uploaded anywhere?

No. Recognition happens inside your browser using Tesseract compiled to WebAssembly, and the image cleanup is ordinary canvas work on your device. The one network request is the engine itself: on first use the WASM core (about 10–15 MB) and a language model for each language you have selected (a few MB each) are fetched from a public CDN and then cached by the browser. That request contains the file names of the engine and the models and nothing else — no image data and no recognised text. Your settings are remembered in local storage; images and text never are.

Why is one word outlined in red?

Because the engine itself is not confident about it. Tesseract returns a confidence score for every word, and the outlines colour them: green above 90%, amber in between, red at or below your suspect threshold. A red box is where a proofreader should look first — typically a smudged character, an unusual font, or a digit and letter the engine cannot separate. Hover any word in the list underneath and its box is highlighted so you can find it on the image.

Can it read handwriting?

Rarely well. Tesseract is trained on printed type and has no handwriting model, so cursive is usually unusable and even neat block capitals come back patchy. Cleanup and upscaling help a little at the margins, but no setting here turns handwriting recognition into a solved problem, and it would be dishonest to suggest otherwise. Clear printed text — a scan, a screenshot, a receipt, a page of a book — is what this is good at.

Can I OCR a PDF or several pages at once?

Several images, yes — add as many as you like and they are recognised one after another, then downloaded as one text file with each filename above its section, or copied individually. PDFs are not read directly here; run the file through the PDF to Image tool first, then drop the resulting pages into the queue. Doing it that way also lets you choose the rendering resolution, which matters for a low-quality scan.

What image formats work?

JPG, PNG, WebP, GIF, BMP and AVIF, up to 25 MB each, and the file is identified by its actual contents rather than by its name or reported type — so an image with a missing or unusual MIME type still works. Very large images are automatically scaled down to 4000 pixels on the long edge before recognition, because beyond that Tesseract gets slower without getting more accurate. HEIC photos from an iPhone cannot be decoded by browsers directly; convert one with the HEIC to JPG tool first and the converted file will work here.

Related Tools

Advertisement
Buy Me a Coffee