✦ tomai
Free · Format Converters

Image to Text (OCR)

Pull the text out of a photo or screenshot — free, in your browser

11 languages built in. Recognition quality depends on the image’s resolution and clarity.

🔒

100% private — Files are converted right in your browser and never uploaded to any server.

How it works

  1. 1

    Drop in a photo or screenshot with any text.

  2. 2

    Choose the language (11 built in — English by default) and click Extract.

  3. 3

    Read the result on the page, copy it, or download it as a .txt file.

OCR that never uploads your screenshots

📄

Eleven OCR languages built in

English, Simplified and Traditional Chinese, Japanese, Korean, German, Spanish, French, Hindi, Portuguese and Russian run on a Tesseract LSTM engine. The picker defaults to your own language, with Chinese and Japanese paired to English for mixed-script pages.

⚡

Small screenshots sharpened first

Images smaller than 1600 pixels on the long side are upscaled 2x and converted to grayscale before recognition — text at 9px, invisible to the raw engine, becomes roughly 95% readable after preprocessing.

🔒

Five image formats accepted

Drop in a PNG, JPG, WebP, BMP or GIF and get a plain-text .txt back. Empty whitespace lines from page margins are stripped so the result is just the extracted text.

Tesseract in WebAssembly, language packs included

  • The full Tesseract engine runs in your browser via WASM — accuracy matches the native build for clean scans.
  • Language data loads once per script (eng, chi_sim, jpn...) and caches for reuse.
  • Sharp, evenly lit, print-quality inputs dramatically outperform angled photos.

Frequently asked questions

Is my image uploaded anywhere?⌄

No — the OCR engine runs entirely in your browser using WebAssembly. Your image never leaves your device.

Which languages are supported?⌄

All 11 site languages are supported: English, Chinese (Simplified and Traditional), Japanese, Korean, German, Spanish, French, Hindi, Portuguese, and Russian. The ☁️ cloud Image OCR tool additionally accepts PDFs and batch uploads.

Why did it return no text or garbled text?⌄

OCR works best on clear, high-contrast, reasonably-sized text. Very small, blurry, rotated, or handwritten text is much less reliable.

Is there a file size limit?⌄

Up to 20 MB per image. Larger or more detailed images simply take a little longer to process.

Related tools

What Is an Image to Text (OCR) Tool?

An Image to Text tool, also called OCR for optical character recognition, reads the words out of a photo, screenshot, or scan and returns editable plain text. This tool runs the self-hosted Tesseract.js engine with its LSTM recognizer in your browser, covering 11 languages with trained data loading from this site, and the language default follows the page locale with mixed Chinese, Japanese, and Korean plus English options. PNG, JPG, WEBP, BMP, and GIF images up to 20 MB are accepted.

How the LSTM engine reads glyphs

The recognizer works best on tall, clean letterforms, so each image is decoded locally, optionally enlarged, grayscaled, and then read line by line with progress tracked. A preflight check confirms the engine and language pack are reachable, and blank margin lines are stripped.

Pick the right recognition language first

  • Photographed receipts, menus, and signs in your own language, where the locale default already selects the correct pack.
  • Screenshots mixing Chinese, Japanese, or Korean with English interface words, where the combined language option reads both scripts in one pass.
  • Scanned pages you want as a .txt file instead of retyping.

Small screenshots and the 2x upscale

Tiny type is the classic failure: a small crop whose glyphs sit far below the sweet spot can return almost nothing, which is why images with a long side under 1600 pixels are doubled on a canvas before recognition. Stylized fonts, heavy shadows, handwriting, and skewed photos still lower accuracy, and non-image bytes get a clear error.

Why your photos never leave this browser tab

The only network requests are static downloads of the engine core and language packs from this site, plus their availability checks, and the image itself is decoded through a local object URL, preprocessed on a canvas, and recognized in a page worker that is terminated afterward. No upload call ever carries picture bytes to a server.

Choose the language that matches the image and faint print becomes selectable text.

Last updated · 2026-09-01

Related tools