🔒 Processed in your browser. Your image is decoded locally using a WebAssembly OCR engine and is not uploaded to any server.
Image to Text (OCR)

Extract text from images, entirely on your device

Tesseract.js OCR runs inside your browser as a WebAssembly module with a dedicated Web Worker. Supports multiple languages, editable output, and one-click copy/download.

✦ Tesseract.js v5 ✦ Multi-language ✦ Web Worker ✦ No uploads
Honest limitations: Accuracy depends on image quality, font size and contrast. Works best on clean, printed text at ≥ 300 DPI. Handwriting, low-resolution scans and stylised fonts produce variable results.
Drop an image here, or click to browse JPG · PNG · WebP · GIF · BMP — validated by file signature
The OCR engine (Tesseract.js v5) and language packs load on first use and stay cached in your browser for subsequent runs. The Web Worker is terminated when recognition completes so it doesn't linger in memory.
FAQ

About the OCR tool

Is my image uploaded anywhere?

No. Tesseract.js runs entirely in your browser as a WebAssembly module. Your image never leaves your device.

Why does the first run take a while?

The OCR engine (~10 MB) and the selected language pack (~5–30 MB) download on first use. They're cached by your browser afterwards, so subsequent runs are instant.

What image quality is needed?

Best results on clean, printed text at ≥ 300 DPI. Handwriting, low-resolution scans and stylised fonts produce variable results.

Can I use it offline?

After the first run the engine and any language packs you've used are cached. On subsequent visits the page can run without an internet connection.

What languages are supported?

Tesseract supports 100+ languages. We expose the most common ones in the dropdown. More can be added on request.