🔤 Image to Text (OCR)
OCR for photos, screenshots, scans, handwriting — no upload, no signup
✓ Free Forever · ✓ No Signup · ✓ No Upload · ✓ Works Offline
🔒 Your image never leaves your device. All processing happens locally in your browser using Tesseract.js (LSTM-based OCR, runs in your browser). No upload, no server, no tracking.
Features
- Zero Upload — Your image never leaves your device. OCR runs entirely on your CPU via WebAssembly — verifiable in DevTools Network tab.
- 12+ Languages — English, Chinese (Simplified + Traditional), Japanese, Korean, Spanish, French, German, Russian, Arabic, Portuguese, Italian, plus mixed-language modes.
- Edit Before Copy — OCR isn't perfect — fix typos directly in the result textarea before copying or downloading.
- Cached Forever — Language data downloads once (~10-20 MB) and is cached in your browser. Subsequent OCRs in the same language are instant.
How It Works
- Drop your image — PNG, JPG, WebP, BMP, GIF — photos, screenshots, scans, handwriting. Up to 50 MB.
- Pick a language — Match the language of the text in your image. Use a mixed mode like 'English + 简体中文' for screenshots with multiple languages.
- Wait for OCR — First time per language: ~10-20 MB download. After that, recognition takes 2-10 seconds depending on image size and text density.
- Copy or download — Edit the result if there are OCR errors, then click Copy or Download .txt.
Use Cases
- Extract text from a screenshot you can't select (image viewers, slide decks, PDFs as images)
- Digitize printed documents, business cards, receipts, recipe pages
- Copy code or commands from screenshots in YouTube tutorials, Stack Overflow answers, Discord screen shares
- Extract quotes from book photos for citing in essays or notes
- Search inside scanned documents — convert to text first, then grep
Frequently Asked Questions
Does my image upload to your server?
No. The image stays in your browser's memory. The only network traffic is the Tesseract OCR engine (~3 MB) and your chosen language data (~10-20 MB) loading from a CDN on first use — both are cached after that. Your image bytes never go anywhere. Open DevTools → Network tab to verify.
How accurate is the OCR?
Tesseract is the open-source standard. Clean printed text: 95-99% accurate. Photos of printed text with good lighting: 85-95%. Handwriting and stylized fonts: 50-80%. Always proofread the output before relying on it.
Can it handle Chinese / Japanese / Arabic?
Yes. Pick chi_sim (Simplified Chinese), chi_tra (Traditional), jpn, kor, or ara. Right-to-left scripts (Arabic) work but may need manual line-order fixing in the output.
What about mixed-language documents?
Use the mixed modes — 'English + 简体中文' or 'English + 日本語'. Tesseract will try both. Note: each extra language slows recognition ~50%.
Why didn't it pick up some text?
Common causes: low contrast, blurry source, very small text, decorative fonts, text on busy backgrounds. Try cropping to the text region, increasing image resolution, or improving contrast first.
Why is the first run slow?
Tesseract downloads ~10-20 MB of language model data the first time you use a given language. Subsequent OCRs in the same language load from IndexedDB cache and start instantly.
Related Tools
- 🔎 PDF OCR — Extract text from scanned PDFs — 100+ languages, runs in-browser
- 📃 PDF to Text — Pull all text out of a PDF as a plain .txt file
- 🔢 Word Counter — Analyze text — word count, characters, reading time, and top words