Image to Text — OCR in Your Browser

Extract text from photos, screenshots, and scanned documents. Tesseract OCR runs entirely in your browser — nothing is uploaded.

Drop images here or
  1. Drop or browse for one or many images — JPG, PNG, WebP, or BMP.
  2. Pick a language if your text is not English — the first run in that language downloads the model (3–14 MB) and caches it in your browser for next time.
  3. Click Extract all. The first run downloads roughly 8 MB of OCR engine and language data from this site (cached by your browser and reused across every image in the batch).
  4. The first image's recognized text appears in the preview below. Download each image's text individually from its row, copy everything to the clipboard, or grab one combined .txt with every file's output separated by headers.
What does it do?

OCR (Optical Character Recognition) turns pixels that look like text into actual text. This tool runs Tesseract — the open-source OCR engine maintained by Google — compiled to WebAssembly. Works best on printed text; handwriting recognition is weaker.

Tips for best results

  • High contrast between text and background.
  • Un-skewed scans — rotate the image first with the Image Cropper if it's sideways or tilted.
  • 300 DPI or higher for scanned documents.
  • Printed text works much better than handwriting.
  • For a multi-page PDF, convert to images first with PDF to JPG / PNG and OCR each page, or use the dedicated PDF to Text tool.

Example

Input — a screenshot of a shipping label, English, JPG. Output textarea:

SHIP TO:
Jane Doe
123 Main Street
Springfield, IL 62701
USA

TRACKING: 1Z 999 AA1 0123 4567 89
WEIGHT: 2.4 lbs
SHIPPED: 2026-04-12

Common errors and pitfalls

Most OCR disappointments come from the source image, not the engine. A bad photo cannot be recovered with a fancier setting.

  • Garbled output on a low-resolution image. Phone screenshots and tiny thumbnails produce mangled text. Re-take the photo closer, or use the original full-resolution file if you have it.
  • Image is rotated 90° or upside down. Tesseract does not auto-rotate. Fix the orientation with the Image Cropper first, then retry.
  • Columns are interleaved in the output. OCR reads in natural scan order and can confuse multi-column layouts. Crop the image by column first, then OCR each column separately.
  • Handwriting comes out wrong. Tesseract is trained on printed text and struggles with cursive or messy handwriting. For legible block-letter handwriting, results are usable but never great — expect to clean up by hand.
  • Non-English text is gibberish. Leaving the language selector on English while OCR'ing Korean, Arabic, or Chinese produces random-looking output. Pick the matching language from the dropdown before extracting.
  • Tab freezes on a huge image. Photos above 20 megapixels can exhaust memory during recognition. Crop to the region you care about with the Image Cropper, or compress with Image Compress first.
Frequently asked questions

What image formats are supported?

JPG, PNG, WebP, and BMP. Any format your browser can decode with the standard Image API should work. For HEIC photos from iPhones, convert to JPG first with the HEIC to JPG tool.

Why is the first run slow?

Tesseract needs about 4 MB of compiled engine code and 4 MB of language model data on the first use. Both are cached by your browser, so subsequent runs start in under a second. Recognition itself typically takes 2–10 seconds for a typical screenshot and scales roughly with image size.

How accurate is it?

On clean printed text at 300 DPI or higher, accuracy is typically 95%+. On phone screenshots of websites, accuracy is usually good but can miss small UI chrome. On low-resolution photos, scans with noise, or handwriting, accuracy drops significantly. We use the fast Tesseract language data — a good balance of speed and accuracy.

Can it handle non-English text?

Yes — pick the matching language from the selector. The first OCR run in that language downloads the model (3–14 MB) and caches it after. Supported languages include Korean, Chinese (Simplified and Traditional), Japanese, Arabic, Hindi, Spanish, French, German, Portuguese, Italian, Russian, and more. Mixed-language images work best when you pick the dominant language.

What about handwriting?

Handwriting recognition is weak. Tesseract is trained on printed text and struggles with cursive or messy writing. Legible block-letter handwriting produces usable but imperfect results; cursive typically does not work at all.

Do you save my images or the extracted text?

No. We don't save the images you drop or the text OCR produces. Everything is discarded when you close or refresh the tab — no logs, no record on our side of what you OCR'd. You can verify with your browser's developer tools.