Skip to content
ByteNeat

Extract the text from an image

Pull selectable, copyable text out of a photo, screenshot or scan. Supports 12 languages. Runs entirely in your browser — your image is never uploaded.

Drop an image here, paste it, or

JPEG, PNG, WebP, BMP or GIF · press Ctrl+V to paste a screenshot · never uploaded

Turning a picture of words into actual words

To a computer, a photo of a page is just a grid of coloured dots. It has no idea those dots spell anything. Optical character recognition — OCR — is the process of analysing those dots, finding the shapes that look like characters, and working out which letters they are. The output is real text: selectable, searchable, editable, and pasteable into anything.

That is useful whenever the words you need are trapped in an image. A screenshot of an error message you want to search for. A printed form you would rather not retype. A page of a book. A slide from a lecture. A receipt you need the numbers from.

Getting accurate results

OCR accuracy depends far more on the image than on the software. The engine is matching shapes, so anything that distorts those shapes hurts. In rough order of impact:

  • Sharpness. Blur is the single biggest killer. A slightly blurry photo can drop accuracy from near-perfect to unusable.
  • Angle. Photograph the page straight on. Perspective distortion stretches characters into shapes the engine does not recognise.
  • Resolution. Text should be comfortably readable when you zoom in. Very small text simply lacks the detail to identify.
  • Contrast. Dark text on a light background works best. Glare, shadows and busy backgrounds all interfere.
  • Cropping. Remove anything that is not text. Photographs, logos and decorative borders produce spurious characters.

A flat scan or a screenshot will nearly always beat a photo taken by hand, because both avoid blur, angle and lighting problems entirely.

Choosing the right language

Language selection is not cosmetic. The engine matches character shapes against the alphabet you choose, so selecting English for a Hindi document produces confident-looking nonsense rather than an error. Each language is a separate download of a few megabytes, fetched once and then cached by your browser.

What it will not do well

Handwriting is the main limitation. The engine is trained on printed type, so neat block capitals occasionally succeed while ordinary cursive almost never does. Complex layouts are the other one: multi-column pages, tables and text flowing around images come out in reading order rather than visually arranged, so a dense form will need rearranging by hand.

Why nothing is uploaded

Recognition runs on your own machine, using Tesseract compiled to WebAssembly inside the browser tab. Your image is never transmitted anywhere.

This matters more here than for almost any other tool on this site. Think about what people actually run through an OCR tool: passports and identity cards, bank statements, payslips, medical letters, signed contracts. Every server-based OCR service asks you to upload exactly those documents to a machine you know nothing about. This one cannot, because there is no server to upload them to.

Frequently asked questions

How do I extract text from an image?

Drop the image in, pick the language the text is written in, and press Extract. The tool reads the picture and returns the text as characters you can select, copy and edit. You can copy the result to your clipboard or download it as a plain text file.

What is OCR?

OCR stands for optical character recognition. It is the process of looking at an image of writing and working out which characters it shows. To a computer a photo of a page is just coloured dots; OCR converts those dots into actual letters and words that software can search, copy and edit.

Is my image uploaded to a server?

No. Recognition runs inside your browser using Tesseract compiled to WebAssembly. Your image never leaves your device. That matters here more than for most tools, because the things people scan tend to be private — identity documents, bank statements, medical letters and contracts.

Which languages are supported?

English, Hindi, Spanish, French, German, Portuguese, Italian, Dutch, Russian, Arabic, Simplified Chinese and Japanese. Pick the language that matches your image before extracting — choosing the wrong one produces garbled output, because the engine is matching shapes against the wrong alphabet.

Why is the first extraction slow?

The first run downloads the recognition engine and the language data for your chosen language, which together are a few megabytes. Your browser caches both, so later extractions in the same language start immediately. Switching to a new language downloads that language data once.

Can it read handwriting?

Rarely, and not reliably. The engine is trained on printed type, so neat block capitals sometimes work while ordinary cursive almost never does. Printed text from books, screenshots, signs, forms and documents is what it handles well.

How do I get better accuracy?

Use the sharpest, most straight-on image you have. Accuracy drops quickly with blur, glare, shadows, low resolution and angled shots. Crop away anything that is not text, make sure the text is upright rather than rotated, and prefer dark text on a light background. A flat, well-lit scan beats a hurried photo every time.

Does it keep the original layout?

Line breaks are preserved, but complex layouts are not. Multi-column pages, tables and text wrapped around images will come out in reading order rather than visually arranged. For a plain page of prose the result usually needs little cleanup; for a dense form, expect to rearrange it yourself.

Last updated .