Extract Text From an Image With Free OCR

Optical character recognition turns the text pictured in an image into text you can select, copy and edit. Drop a screenshot, photo or scan below, choose its language, and read the recognised text in seconds. The OCR engine runs inside your browser, so the image is never uploaded.

Drop an image here or click to choose a file
PNG, JPG, WebP or BMP · screenshots, photos, scans

What OCR does

OCR converts pictures of characters into character codes. The engine locates lines of text in the image, isolates each glyph, compares its shape against a trained model of the selected language, and outputs the most probable character. The result is real text: selectable, searchable and editable.

This tool uses Tesseract, the long-established open-source OCR engine, compiled to WebAssembly so it runs at native-like speed inside the browser rather than on a server.

How to extract text from an image

  1. Choose your image. Drag a PNG, JPG, WebP or BMP onto the box above, or click to browse. Screenshots, phone photos and flatbed scans all work.
  2. Select the language. Pick the language of the text in the picture. The correct language materially improves accuracy, because each model knows that language's character shapes and letter combinations.
  3. Click Extract text. The OCR engine downloads once, then recognises the image. Progress is shown as a percentage.
  4. Edit, copy or download. The result appears in an editable box. Fix any stray characters, then copy it or download it as a .txt file.

What the output looks like

The output is plain text with line breaks preserved roughly as they appear in the image. It lands in an editable text box rather than a read-only panel, because OCR output almost always benefits from a quick human pass — most often for a mistaken 0 against O, or 1 against l.

Copy the text to the clipboard or download it as a .txt file. There is no watermark and no character cap.

Supported images and languages

Accepted formats are PNG, JPEG, WebP, BMP and GIF — any raster image your browser decodes. Eleven languages are available: English, Spanish, French, German, Portuguese, Italian, Hindi, Arabic, Russian, Simplified Chinese and Japanese.

Accuracy tracks image quality closely. Text at least 20 pixels tall, in focus, and roughly horizontal reads reliably. A 300 DPI scan outperforms a phone photo of the same page by a wide margin.

Why the image is never uploaded

The OCR engine itself is downloaded to your browser and runs there, so the image stays in local memory. Only the engine and its language model come over the network — never your file.

Most free OCR sites work the other way round, uploading your image for server-side processing. For a photographed passport, a signed contract or a medical letter, keeping the file on your own machine is the difference that matters.

Where OCR gets things wrong

Four conditions reliably degrade accuracy:

OCR also does not preserve layout. Columns, tables and headers arrive as running text.

Common reasons to run OCR

OCR compared with reading a PDF's text layer

Use OCR only when there is no text layer to read. A digitally created PDF already contains real text, and the PDF text extractor returns it perfectly — OCR on the same file would be slower and less accurate. A scan is the opposite case: nothing but pixels, so OCR is the only route.

Once you have the text, feed it into the email and URL extractor or the phone number extractor to pull out the values you actually need. To read a photo's camera and GPS data instead of its text, use the EXIF metadata extractor.

For a detailed breakdown of when to use each approach, read OCR vs text extraction and how accurate OCR actually is.

OCR engine standards and accuracy edge cases

The tool uses Tesseract.js, running the Tesseract 4 LSTM engine via WebAssembly entirely in the browser. The LSTM engine was trained on synthetic font data at 300 DPI and is more accurate on natural text than the legacy word-based engine it replaced. The English model (eng.traineddata) covers Latin-script text.

Three variables most affect accuracy: (a) resolution — the model was trained at 300 DPI; a phone screenshot captured at 96 screen PPI is effectively lower resolution, and scaling the image to 150% before dropping it here improves results on small text; (b) the engine uses PSM 3 (fully automatic page segmentation), which handles mixed-column layouts and single-column text accurately but struggles with very short text or single words — crop tightly to the text area for best results; (c) digit confusion — 0/O and 1/l/I are frequently misread in sans-serif fonts at small sizes; verify any extracted numbers against the original image before using them in calculations.

Frequently asked questions

How do I extract text from an image for free?

Drop the image above, choose its language and click Extract text. There is no signup, no watermark and no daily limit.

Is my image uploaded anywhere?

No. The OCR engine runs inside your browser. Your image stays in local memory and is never transmitted.

Why is the first run slower?

The OCR engine and the language model download once, which takes a few seconds. They are then cached, so later images process immediately.

Which languages are supported?

Eleven: English, Spanish, French, German, Portuguese, Italian, Hindi, Arabic, Russian Simplified Chinese and Japanese. Select the language before extracting.

Can it read handwriting?

No. The engine is trained on printed text. Handwritten and cursive writing produce unreliable results.

Why is the recognised text full of mistakes?

Almost always image quality. Rescan or rephotograph so the text is in focus, roughly horizontal, high contrast and at least 20 pixels tall, then try again.

Does OCR keep my table layout?

No. OCR returns running text. For tables inside a PDF, use the PDF table extractor instead.

• Specialist file parsing & security engineer • Verified: in our experience, our hands-on testing measured and verified private in-browser execution with zero file uploads • Last reviewed July 2026.