Browser OCR

Image to Text OCR

Extract text from photos, screenshots, and scanned documents in your browser. Free, unlimited, and completely private — your images never leave your device.

Drop images here

JPG, PNG, WebP, BMP, HEIC up to 100 MB each

Your images are processed locally and never leave this browser.

Add one or more images above to get started. Pick the language first for the most accurate results.

Image to Text OCR — Frequently Asked Questions

Are my images uploaded to a server?

No. All OCR processing happens inside your browser using WebAssembly. The only network request is a one-time download of the OCR engine and the language model for the language you pick — both are served from FormatFuse and cached by your browser afterwards. You can verify this in your browser's Network tab: after the first load, running OCR on a new image produces zero outbound traffic.

Can it read handwriting?

Not reliably. Tesseract is trained on printed text, so neat block capitals sometimes work, but cursive, rushed notes, or stylised handwriting will produce poor results. For handwritten content, specialist models perform much better than general-purpose OCR. Treat any handwritten output as a rough draft that needs manual correction.

What image quality do I need for good results?

Aim for 300 DPI or better with sharp focus, even lighting, and good contrast between the text and background. Avoid skewed angles, shadows, glare, and heavy JPG compression. If your text is small in the frame, crop to the text area before uploading. Screenshots and scanned pages typically work better than phone photos of documents.

Which languages work best?

English gives the most consistent results because it has the largest training corpus. Other Latin-script languages (Spanish, French, German) are also strong. Chinese, Japanese, Hindi, and Arabic work well on clear printed text but are more sensitive to resolution and noise. If your document mixes languages, pick the one that appears most often — multi-language OCR in a single pass is not supported in this tool.

Why is the first run slow?

The first time you run OCR in a given language, your browser downloads the Tesseract engine (roughly 3 MB) and the language-specific training data (2–15 MB depending on language). That download happens once per language, is cached by your browser, and lets every subsequent run start instantly. Switching to a new language triggers one more download for that language's data, then that one is cached too.

Which image formats can I use?

JPG, PNG, WebP, BMP, and HEIC are all supported. HEIC files from iPhones are decoded in the browser before OCR runs. For scanned PDFs, convert the pages to images first with our PDF to JPG or PDF to PNG tools, then run OCR on the images.