S
SoSimple.tools
Optical Character Recognition

Image Text Extractor (OCR)

Convert images, scanned pages and screenshots into selectable text. The image is processed on your device and is not uploaded

Runs in your browser: what you enter stays on your device

Choose an Image

Click to browse or drag and drop

JPG, PNG or WebP, ideally at full quality

Your image stays on your device. Recognition runs in your browser with WebAssembly. To start, the page downloads the OCR engine and the language data from the jsDelivr CDN; the image itself is never part of those requests.

Extracted Text

OCR is an estimate, not a transcript. Accuracy depends on image quality, lighting, contrast and the language selected. Proofread the result, especially numbers, names and anything legal, medical or financial.
Share this tool

How to use this tool

  1. Choose the document language (English, Spanish, French, German, Portuguese or Italian) so the right recognition data is used.
  2. Select a JPG, PNG or WEBP image, or drag it onto the upload area.
  3. Press “Extract Text” and wait: the first run downloads the OCR engine and language data once.
  4. Proofread the text, fix any misread characters and press “Copy Text”.

Worked example

Say you photographed a printed utility bill and want the account number in a spreadsheet. Pick the bill's language, upload a sharp, straight, well-lit photo and extract. Clean print usually comes out nearly right, but look-alike characters such as 0 and O, or 1 and l, are classic slips, so check every digit against the original before pasting. A blurry, skewed or low-contrast image gives much weaker results than a flat scan, so retaking the picture is often faster than correcting the text.

Methodology

The engine is Tesseract (Apache License 2.0), which began at HP Labs in the 1980s, was open-sourced in 2005 and has been developed with Google's sponsorship since. From version 4 its default recognizer is an LSTM neural network that reads whole text lines. This page runs Tesseract.js 5.1.0 (also Apache 2.0), a WebAssembly build of the engine for browsers.

What is downloaded, and from where: When you press Extract Text, your browser fetches three things from the jsDelivr CDN (cdn.jsdelivr.net), a third-party host: the Tesseract.js worker script, the WebAssembly engine core and the .traineddata language file for the language you picked. Like any web host, jsDelivr can see your IP address and which files were requested, and the browser may cache them for later visits. Your image is not part of those requests: it is converted to JPEG inside the page and recognized by a worker running on your device.
Image preparation and limits: Before recognition the page paints the image on a white canvas (so transparent PNGs do not turn black), shrinks it if the longest side exceeds 2,400 px and re-encodes it as JPEG at quality 0.85. As a worked example, an A4 page (11.7 in tall) photographed at 2,400 px on the long side is about 205 DPI, below the roughly 300 DPI that Tesseract's documentation recommends, so small print on a full page may need a closer crop. The engine works best on printed text in one language, in straight lines; handwriting, curved text and tables come out unreliably, and the result is plain text without layout.

What a photo needs before OCR can read it

Most bad results are decided before you press the button. These are the slips this page is built to catch or soften.

  • Leaving the wrong language selected. The menu starts on your page language and offers six sets (English, Spanish, French, German, Portuguese, Italian). A German letter read with English data loses its ä, ö and ü. Pick the language of the document, not of your screen.
  • Shooting the whole page from far away. Images are capped at 2,400 px on the long side. Crop an A4 page to its text block, say half the height (5.85 in), and the same 2,400 px give about 410 DPI instead of 205.
  • Uploading light text on a transparent background. Transparent areas are painted white before recognition, so white or pale text on a transparent PNG disappears. Export it with a solid dark background first.
  • Mixing two languages in one run. Only one language set is used per run. Run the page twice, once per language, and merge by hand.
  • Expecting layout. Columns, tables and forms come back as plain lines of text. Treat the output as raw material to reformat, and proofread every digit.

OCR is an estimate, not a transcript.

Gear for Better Scans

A scanner, a phone stand and a document feeder scanner. Sharp, evenly lit images usually give better text recognition.

Compact Sheetfed Scanner
Ambir Ultra-Compact USB Document Scanner

Ambir Ultra-Compact USB Document Scanner

A compact USB sheet-fed scanner for receipts, cards and documents, according to the listing. A clean scan usually gives better text recognition than a photo.

Budget Setup Phone Clamp
Overhead Gooseneck Phone Desk Mount

Overhead Gooseneck Phone Desk Mount

A gooseneck clamp that holds a phone above the desk, according to the listing, so you can photograph pages flat and steady.

High Volume Duplex ADF
High-Speed Color Duplex Document Scanner

High-Speed Color Duplex Document Scanner

A desktop duplex scanner with an automatic document feeder, according to the listing, for scanning stacks of pages in one go.

As an Amazon Associate we earn from qualifying purchases at no additional cost to you.

Related tools

Frequently asked questions

Is my image uploaded anywhere? ▼

No. The image is decoded, resized and recognized inside your browser. What does go over the network is the tooling: the Tesseract.js script, the WebAssembly engine and the language file are downloaded from the jsDelivr CDN when you press Extract Text. That host sees your IP address and the names of those files, but not your image or the text found in it.

Why is the output full of typos or missing lines? ▼

Typical causes are blur, shadows across the page, low contrast, a phone photo taken at an angle, very small print and handwriting. Photograph the page from directly above in even light, crop to the text and avoid compressing the file again. Also check that the document language matches the one selected: with English selected, characters such as ä, é or ñ are often misread, and a page mixing two languages is best run twice.

How long does it take, and does it work offline? ▼

The first run needs an internet connection to fetch the engine and the language data, which takes noticeable time on a slow connection. The recognition itself runs on your own processor, so a large photo takes longer on an older phone than on a laptop. Once the files are cached by your browser, a repeat run may start faster, but offline use is not guaranteed because the cache can be cleared.

Can I rely on the result for contracts or invoices? ▼

Treat it as a first draft. OCR can swap look-alike characters (0 and O, 1 and l, 5 and S), which is risky in amounts, IBANs, dates and names. Compare the extracted text against the original before you use it for anything legal, medical or financial.