Image OCR — Extract Text from Photos & Screenshots
Drop a screenshot, photo, or scan and pull plain text out of it on the spot. Supports 16 languages including Japanese, Chinese, Arabic, and Cyrillic — runs entirely in your browser.
Languageseng
Pick more than one language if your image mixes scripts (e.g. English + Japanese). Each additional language adds processing time and downloads its own language data on first use.
Image
Extracted text
Image OCR — Extract Text from Photos, Screenshots & Scans (Free)
Free privacy-friendly image OCR. Drop a photo, screenshot, or scan and pull plain text out of it directly in your browser. Supports 16 languages including English, Spanish, German, Japanese, Korean, Chinese, and Arabic. Powered by Tesseract.js — your images are never uploaded.
Functies
- Optical character recognition in 16 languages — Latin, Cyrillic, CJK, and Arabic scripts all supported
- Multi-language detection: select two or three languages at once for images that mix scripts (e.g. English notes on a Japanese form)
- Live progress bar with status (loading model, recognizing, deskewing) and a final confidence score for the recognized text
- Editable result area — fix up the OCR before copying or downloading as .txt without re-running the recognition
- 100% client-side using Tesseract.js (WebAssembly). Language data is fetched the first time you pick a language and cached locally; your images never leave the browser
Hoe te gebruiken
- Open the Languages panel and pick the language(s) that appear in your image. English is on by default. The first time you use a language, ~10 MB of model data is downloaded and cached so subsequent runs are instant.
- Drag your image into the drop zone or click to pick it from disk. The preview will appear with a Run button below it.
- Click Extract text. The progress bar walks through model loading, layout analysis, and recognition. When it finishes, edit any mistakes in the right panel, then copy to clipboard or download as a .txt file.
Tips en best practices
- If your screenshot has a very dark or very bright background, briefly invert it in any image editor before OCR — many OCR engines are tuned for dark text on a light background.
- Clean white margins and crisp letter edges trump higher resolution; downscaling a noisy photo can occasionally improve accuracy.
- For receipts or invoices, a single-language selection is usually faster and more accurate than picking 'try everything'.
- Text in stylized logos or with heavy outlines often confuses Tesseract — expect manual cleanup for those.
- Tesseract is open source — the same engine drives many commercial OCR tools, so the accuracy ceiling here is roughly what you'd get from those tools without paying.
Veelgestelde vragen
Is my image uploaded anywhere?
No. The recognition runs in your browser via Tesseract.js (WebAssembly). The only network requests this tool makes are to fetch the OCR engine itself and the language model files, both of which are public assets cached by your browser — your image content never leaves your device.
Why is the first run slow?
The first time you OCR in a given language, Tesseract.js downloads the language model (≈10 MB per language) and the core engine. Both are cached afterwards, so subsequent runs of the same language are dramatically faster. If you pick multiple languages, each model is downloaded separately.
What images give the best results?
Sharp, high-contrast images with mostly horizontal text work best. The engine is generally robust at 300 DPI or higher for scans. Tilted, very low-resolution, heavily compressed, or shadow-mottled images will lower accuracy. Cropping out non-text decoration before running OCR often helps.
Can it read handwriting?
Tesseract is trained on typeset text and is not reliable on cursive or unconstrained handwriting. It can sometimes pick out neat block-letter handwriting but it isn't built for it. For handwriting at scale you need a different model (HTR — Handwritten Text Recognition).
What does the confidence score mean?
Tesseract returns a per-word confidence (0–100) representing how certain it is about each recognized word. The displayed value is the average for the whole image. Below 50% usually means the image quality or language match is poor and the result will likely need manual cleanup.
Why does picking multiple languages help — or hurt?
Tesseract supports combining language models so it can recognize text containing more than one script in the same image. The trade-off is processing time: each added language increases both download time (one-time) and recognition time. If your image is only in one language, picking that single language gives the fastest and most accurate result.
Why does my result come out as gibberish?
Either the language doesn't match (e.g. you selected English but the image is German), or the source image is too noisy, low-contrast, skewed, or low resolution to read. Try cropping the image to just the text, increasing the resolution, or selecting the correct language.
Does it support PDFs?
Not directly. Convert the PDF to images first (e.g. screenshot each page) and OCR them individually. For a vector-text PDF, you do not need OCR at all — use a PDF text extractor instead.