Image to Text.

Pull readable text out of a photo, screenshot, or scan — all in your browser.

Pick the dominant language in the image for best accuracy.
Files never leave your device
Local processing
Conversions happen in your browser. Nothing is uploaded.
Instant results
Native browser APIs mean no server queue, no waiting room.
No account needed
Open, drop, convert. No sign-up, no email, no friction.

Frequently asked questions

Why is the first conversion slow?
The OCR engine (tesseract.js) is about 3 MB and downloads on first use. Subsequent conversions reuse the cached engine and are much faster — typically a few seconds per image.
How accurate is it?
On clean, high-contrast screenshots and typed documents, accuracy is usually 95%+. On handwritten text, low-resolution photos, or stylized fonts, accuracy drops significantly. For best results, use the highest-resolution image you have and pick the correct language.
Will my image be uploaded?
No. Tesseract.js runs entirely in your browser — the OCR engine downloads once, then everything happens locally. You can verify in your browser's network tab.
Why aren't all languages here?
Each language pack is ~10-20 MB and downloads on demand. The most common languages are listed; let me know if you need others added.
Are my files really not uploaded?
Correct. Every conversion in this tool runs in your browser using JavaScript and the local file APIs. There is no server-side processing, no file upload, no temporary storage, and no log of what you converted. You can verify this by opening your browser's network tab while converting — the only traffic is loading the page itself.
Do I need an account or to install anything?
No. Open the page, drop your file, download the result. No signup, no email, no extension, no app.
Is there a file-size limit?
Not from us. The practical limit is your device's memory — browser tabs typically handle files in the hundreds of megabytes range without issues. Very large files may take longer to process on phones than on laptops.