Image to Text

Drop a photo or a screenshot and get the words out of it as text you can copy. The reading happens on your device, so the picture never leaves it.

Runs on your device — images are never uploaded

Drop a photo or screenshot here

or click to browse — several at once is fine

JPG · PNG · WebP · HEIC

This reads printed text. Handwriting is not what the engine was trained on and it will mostly produce nonsense from it. A page photographed at an angle, in bad light or out of focus reads badly for the same reasons it is hard for you to read.

Advertisement

How it works

Three steps, no account, and the image never leaves your computer.

STEP 01

Drop the picture in

A photo of a page, a screenshot, a scan. JPG, PNG, WebP or an iPhone HEIC, and several at once if you have them.

STEP 02

Choose the language

It changes the answer more than people expect — the engine guesses words, and it guesses them in the language you picked.

STEP 03

Press the button and read it

The text appears in a box you can edit before copying, because no OCR is perfect and the fix belongs where the text is.

What people pull text out of

A photographed page or receipt

A book, a contract, a bill. Faster than typing it and the numbers can be checked against the picture beside you.

A screenshot you cannot select

Text inside an image, a slide, a video frame, an app that will not let you copy.

A scanned document

A scan is a picture of a page, so its words are not searchable until something reads them.

A whiteboard or a sign

Photographed notes turned into something you can actually search later.

Advertisement

What OCR is good at, and where it falls over

Optical character recognition does one thing: it looks at a picture and guesses which letters are in it. Everything about how well it works follows from the word guesses.

The engine here is Tesseract, which has been developed since the 1980s and is what a great many "AI text extractors" are quietly running underneath. It reads printed text extremely well and everything else with difficulty.

What makes a picture read well

Four things, roughly in order of how much they matter:

ThisMatters because
Straight on, not at an angleLetters on a slant are a different shape. Photograph a page from directly above, not from where you are sitting
In focusA blurred edge between a letter and the paper is where a guess goes wrong
Even lightA shadow across half the page makes that half a different colour of grey, and grey text on grey paper is hard for anything
Big enoughText needs a reasonable number of pixels per letter. A whole A4 page in a 600-pixel photo is not enough

If a result comes back as nonsense, it is almost always one of those four rather than anything about the software. Retaking the photo beats every setting.

Why the language matters

The engine does not read letter by letter and stop there. It compares what it sees against how words are actually spelled in the language you chose, and uses that to settle the ambiguous letters — the ones where a rn could be an m, or a 0 could be an O.

Run Spanish text through the English setting and you lose that help entirely. Accented characters suffer most, because English has no reason to expect them.

Handwriting is a different problem

Worth being plain about, because it is the most common disappointment. This engine was trained on printed type, and handwriting is not a messier version of printed type — it is a different thing, where letters join, lean and change shape depending on what is next to them.

Neat block capitals sometimes come through. Ordinary cursive will produce something that looks like text and means nothing.

Numbers deserve a second look

The one habit worth having. Language helps the engine with words and does nothing for digits — there is no dictionary of plausible amounts, so a 5 read as an S has nothing to correct it.

So if you have pulled out an invoice total, an account number, a date or a reference code, check those characters against the picture. The prose can be skimmed; the numbers cannot.

What it does not do

It reads text, not layout. Columns, tables and forms come out in reading order rather than in their arrangement on the page — a two-column page tends to come out as one column with the halves interleaved. If the layout is the point, crop the part you need and read it on its own.

Why doing this on your own device is not a small detail

Look at what people actually run through OCR: payslips, prescriptions, tenancy agreements, bank letters, medical results, identity documents. It is one of the most consistently sensitive categories of file there is.

The usual way to do it online is to upload the picture to a server, have it read there, and get the text back — which means a copy of that document now sits on somebody else's disk under a retention policy nobody reads. Here the engine is a few megabytes of WebAssembly that your browser downloads once and runs locally. The picture is read on your machine, and there is no server for it to have been sent to.

Common questions

Is the image uploaded anywhere?

No. The recognition engine runs in your browser as WebAssembly, so the picture is read on your own device. That is why there is no size limit, no queue and no account — and it is the reason this is safe to use on a payslip or a bank letter.

Why is the first extraction slow?

Because the engine and the language data have to arrive first — a few megabytes, once. Your browser caches them, so every extraction after that starts immediately.

Can it read handwriting?

Not reliably. It was trained on printed type, and handwriting is a different problem rather than a harder version of the same one. Neat block capitals sometimes work; ordinary cursive produces text that means nothing.

Why is the text full of mistakes?

Almost always the picture rather than the software. Photograph the page from directly above, in even light, in focus, and large enough that the letters have plenty of pixels. Retaking the photo helps more than any setting.

Does choosing the right language matter?

Yes, more than people expect. The engine settles ambiguous letters by checking them against how words are spelled in the language you picked, so the wrong language throws that help away — and accented characters suffer most.

Should I trust the numbers it reads?

Check them. Language helps with words and does nothing for digits, because there is no dictionary of plausible amounts. Reference codes, totals and dates are worth reading back against the picture.

Can it keep the layout of a table or a form?

No. It reads text in reading order, not arrangement, so columns tend to come out interleaved. If the layout matters, crop the part you need and read that on its own.

Advertisement