Image to Text (OCR)
Extract text from images using optical character recognition. Support for screenshots, photos, scanned documents. Free online OCR tool, works offline in browser
Cloud OCR (Google Vision, AWS Textract) gives the best accuracy in 2026 — but at the cost of uploading every document, often paid per page, with privacy implications for receipts, IDs, and contracts. Browser-based OCR runs Tesseract via WebAssembly: accuracy is 5-10% lower than cloud services but data never leaves your machine, the work is free, and there is no upload step. This tool extracts text from images using Tesseract 5.x, supports 100+ languages, and can output plain text, hOCR (HTML with bounding boxes), or TSV with confidence per word.
What Tesseract gets right and wrong
- Crisp printed text — newspapers, books, signs, screenshots of UI. Tesseract handles 90%+ accurately at minimum 12pt and 100+ DPI.
- Multiple languages on the same page — Tesseract supports script mixing (e.g., English + Polish) if you provide the language list.
- Layout preservation in hOCR — bounding boxes for every word; reconstruct the original layout in your app.
- Handwriting — generally bad. Cursive especially. For handwriting use specialized models (Microsoft Read API, Google Cloud Vision's handwriting endpoint) or AI services.
- Tables and forms — poor. Tesseract is a line-oriented OCR. Multi-column tables, complex forms, receipts with positional data require Document AI (Google), Textract (AWS), or AzureAI Document Intelligence.
- Low-quality scans — sub-150-DPI scans, JPEG-compressed images, photographed pages with shadows and angles all degrade accuracy fast. Pre-process (auto-contrast, deskew, denoise) before feeding to Tesseract.
Working example: a receipt
Input
Photo of a Polish grocery receipt, 1920×1080, mediocre lighting
Output
BIEDRONKA #2438 ul. Marszalkowska 100, Warszawa NIP: 7790009955 Paragon fiskalny 2026-05-14 14:32 Mleko 2% 1L 4.49 Chleb Razowy 3.79 B Maslo extra 200g 8.99 A Jajka L 10szt 11.99 A -------------------------------- SUMA PLN 29.26 Confidence: Header / store name: 92% Line items (prices): 88% Total: 97% Date: 95%
Receipt OCR is best-effort. Polish characters (ł, ą, ę) sometimes render as their ASCII equivalents (l, a, e) if the language pack is not loaded. For Polish use lang=pol. Numeric data (prices, totals) is usually most reliable; long product names with quirky abbreviations are the hardest part.
Pre-processing that improves accuracy
- Deskew — rotate the image so text is horizontal. Tesseract handles slight tilts (~5°) but degrades sharply beyond.
- Contrast / threshold — convert to high-contrast black on white. Receipts photographed under fluorescent lighting often need this.
- Resolution — upscale to at least 300 DPI for printed text. Below 100 DPI, even bold sans-serif fails.
- Crop — remove backgrounds, borders, and irrelevant content. Tesseract's line-detection is faster and more accurate on clean inputs.
- Denoise — remove JPEG compression artifacts and sensor noise. Median filtering or a light Gaussian blur often helps; aggressive denoising blurs character edges.
Languages and their quirks
- Latin scripts (English, Spanish, French, German, Polish, etc.) — well-supported. Specify exact language for best accuracy.
- Multi-script (e.g., a Polish phrase in an English document) — combine language codes: lang=eng+pol.
- CJK (Chinese / Japanese / Korean) — supported but accuracy depends heavily on font quality. Tesseract's CJK models are decent for printed text, poor for handwritten.
- Arabic / Hebrew — RTL scripts work; baseline detection and ligatures sometimes fail on stylized fonts.
- Cyrillic — supported (Russian, Ukrainian, Bulgarian, etc.). Modern fonts work well; old Soviet-era documents in specific typefaces are harder.
When to reach for this tool
- You scanned a paper document and want a digital copy without typing it.
- You have a screenshot containing text that you cannot copy (an error message, a quote from a video, code in a screenshot) and want it as text.
- You are processing receipts for expense tracking and want a starting OCR pass that you can correct before submitting.
- You need to extract text from images while keeping the data local (legal documents, IDs, medical records) — cloud OCR services that meet HIPAA/GDPR have higher friction.
What this tool will not do
- It will not perfectly reproduce complex layouts (tables, multi-column documents, forms). Tesseract is line-by-line; spatial relationships are approximate.
- It will not transcribe handwriting reliably. Cursive accuracy under 50%; printed handwriting 60-80%; printed text 90%+. For handwriting, use specialized AI services.
- It will not understand semantics. "Extract the total from this receipt" needs a separate post-processing step that finds patterns like "SUMA" or "TOTAL" followed by a number.
All OCR runs in your browser via Tesseract WebAssembly. The image, the recognized text, and any intermediate results stay local. Useful for documents that should not leave your device.
Frequently asked questions
Why is the OCR result lowercase / all caps / mixed case wrong?
Tesseract preserves the case it sees. If the source uses small caps or stylized typography (decorative serif, all-caps headlines), the OCR may misread or normalize. For consistent case, post-process the result — lowercase everything and re-capitalize sentences if needed.
How accurate is Tesseract vs Google Cloud Vision?
On printed text, Tesseract ~88-92% character accuracy; Google Vision ~96-98%. The gap is bigger on handwriting (Tesseract <50% vs Vision ~85%) and on noisy scans. For high-volume production OCR with quality requirements, cloud services pay off; for one-off personal use, Tesseract is usually enough.
Can OCR replace manually entering business cards / receipts?
For high-volume professional use, dedicated apps (CamCard, Expensify) outperform general OCR because they post-process specifically for those document types. For ad-hoc personal use, general OCR gets 80% of the value.
Why does my OCR miss characters that look obvious to me?
Tesseract trains on specific fonts and resolutions. Decorative fonts, handwritten letters, low-resolution scans, and characters touching each other (kerned tightly) all degrade recognition. Sometimes upscaling 2x with image-editor "preserve detail" smoothing improves accuracy more than any other change.
Does Tesseract support handwriting?
In principle, with handwriting-specific models. In practice, the open-source handwriting models are 5-10 years behind commercial offerings. For handwriting-heavy OCR use Google Vision, AWS Textract, or a custom-trained model.
Can I extract math equations or chemistry?
Not well with general OCR. Math OCR (MathPix, Lens Studio) recognizes LaTeX from rendered equations specifically. Chemistry OCR (ChemAxon, RDKit) handles structural diagrams. General OCR will miss superscripts, fractions, and special symbols.
Related tools
Convert images between PNG, JPEG, and WebP formats. Batch conversion with quality control. Free online image format converter
Compress and resize images online without losing quality. Reduce JPEG, PNG, WebP file size. Free image optimization tool with adjustable quality
Merge, split, rotate PDF files online. Create PDFs from images. Rearrange PDF pages. Free online PDF editor and converter without upload limits
Clean up text by removing duplicate lines, trimming whitespace, removing empty lines, normalizing spaces. Multiple operations in one pass. Free online text sanitizer
Last updated · E-Utils editorial team