How it works
The image is passed directly to Tesseract.js, the WebAssembly build of the Tesseract OCR engine. The trained language model runs on-device in your browser. No upload.
FAQ
What image formats are supported? PNG, JPG, WebP, SVG, and GIF (first frame). Tesseract.js handles whatever the browser can decode through the Canvas API.
Does it work for handwriting? Tesseract is trained primarily on printed text. It can sometimes read very neat block lettering but cursive or messy handwriting will produce poor results. For handwriting, a dedicated cloud OCR (Google Vision, AWS Textract) is significantly better.
Why is the first run slow? The first time you pick a language, the Tesseract language model (~5–10 MB) is downloaded and cached. Subsequent runs in the same browser are much faster.