Skip to main content
IT

Image to Text (OCR)

Extract text from any image or scanned document — 16 languages, entirely in your browser via WebAssembly OCR.

Did you like the tool? Thanks!
Share:

More Image Tools Tools

IC

Image Cropper

Crop any image to exactly the area you need, with a live preview — nothing is uploaded, everything happens in your browser.

IR

Image Resizer

Resize any image to an exact width and height in your browser — optional aspect-ratio lock, PNG/JPEG/WebP output, nothing uploaded.

IC

Image Compressor

Shrink an image's file size by re-encoding it at a chosen quality level — live before/after size comparison, JPEG/WebP/PNG output, done locally.

IF

Image Flip & Rotate

Flip an image horizontally or vertically and rotate it by any angle — quick 90/180/270° buttons or a free-angle slider, corners never clipped.

IT

Image to Base64

Convert an image into a Base64-encoded string — full data URI or raw Base64, character count, one-click copy, all done locally.

BT

Base64 to Image

Paste a Base64 string or data URI and preview the decoded image instantly — auto-trims whitespace, lets you pick the assumed format, download in one click.

PI

Placeholder Image Generator

Generate a simple placeholder image for wireframes and mockups — custom size, colors and text, auto-sized to fit, PNG/JPEG/WebP output.

IF

Image Format Converter

Convert an image between PNG, JPEG, WebP and BMP entirely in your browser — no upload, instant preview, adjustable quality.

FG

Favicon Generator

Turn any image into a complete favicon package — six PNG sizes plus a combined multi-resolution .ico file, generated locally in your browser.

AA

ASCII Art Generator

Turn a photo into text-based ASCII art, or type a short message as a large block-letter banner — both rendered entirely in your browser.

Extract text from an image. The recognition model runs entirely in your browser (WebAssembly) — your image and the extracted text are never sent to a server.

— first run for this language downloads the recognition data, subsequent runs use the browser cache.

How to Use Image to Text (OCR)

Upload an image containing text — a screenshot, a scanned page, a photo of a sign or document — and pick the language it's written in. The tool recognises the text using an in-browser OCR engine and displays the extracted text, ready to copy. English, Romanian, and 14 other major European languages are supported, including an English + Romanian combined mode for mixed-language text.

About Image to Text (OCR)

OCR (Optical Character Recognition) is the process of turning a picture of text — a scanned page, a photographed sign, a screenshot of a PDF you can't select text from — into actual, selectable, searchable text. It is one of the oldest problems in applied computer vision, and modern OCR engines solve it in roughly the same conceptual stages regardless of implementation: finding where text sits on the page, segmenting it into lines and individual characters or character groups, and then recognising each shape as a specific letter, digit, or symbol using a trained model that has learned what thousands of real fonts and handwriting styles look like.\n\nThis tool runs Tesseract, one of the most established open-source OCR engines (originally developed at HP in the 1980s, later open-sourced and now maintained with Google's involvement), compiled to WebAssembly so it runs directly inside your browser tab rather than on a server. Recognition happens through a neural network (an LSTM — long short-term memory — model, Tesseract's modern recognition engine) that has been trained separately for each supported language on large volumes of real text in that language's script, vocabulary, and letter combinations. That per-language training matters more than it might seem: a model trained on English text knows which letter sequences are statistically likely in English and uses that knowledge to resolve ambiguous shapes (is that faint mark an "rn" or an "m"?), and — critically — it only recognises the specific set of characters it was trained on. An English-only model has no concept of Romanian's ă, â, î, ș, and ț, French's é and ç, or German's ü and ß; feed it text containing those characters and it will either drop them, or substitute the nearest plain-Latin letter it does know, producing visibly corrupted output. This is exactly why choosing the correct language before recognising is the single most important setting on this page, and why an "English + Romanian" combined mode is offered for documents that genuinely mix both languages in the same image, such as a form with English headings and Romanian handwritten answers.\n\nEach language's recognition model is a real file — several megabytes of trained neural network weights — and rather than fetching it from a third-party CDN (the default behaviour of the underlying OCR library), this site hosts all 16 supported languages' models directly, alongside the WebAssembly recognition engine itself. That means recognising text on this page never sends a request to any external service: the image you upload, the text extracted from it, and even the download of the recognition model itself all happen against this site's own servers or entirely inside your browser — nothing about what you're trying to read is visible to a third party. The trade-off is a genuinely large first-time download for whichever language you pick (a few megabytes), which your browser then caches, so recognising a second image in the same language is immediate.\n\nOCR accuracy depends heavily on image quality: clean, high-contrast, reasonably high-resolution scans of printed text recognise very well, often with no errors at all. Handwriting, low-resolution photos, skewed or rotated text, unusual fonts, and busy backgrounds all reduce accuracy, sometimes substantially — OCR is pattern recognition, not comprehension, and it has no way to guess at a word it genuinely couldn't resolve from the pixels in front of it. For the best results, use a straight-on, well-lit, reasonably sharp image, and make sure the selected language actually matches what's written.

Details & Tips

Technical implementation: this tool is built on Tesseract.js, a JavaScript wrapper around Tesseract's C++ engine compiled to WebAssembly via Emscripten. Recognition happens through a Web Worker, so the (sometimes multi-second) recognition process doesn't freeze the page while it runs — a progress bar reflects the worker's own reported stages (loading the WASM core, loading the selected language's trained model, initialising, and recognising).\n\nSelf-hosting details, for anyone curious why this matters: by default, Tesseract.js fetches three things from a public CDN — the WebAssembly recognition core, the worker script that coordinates it, and the trained data file (.traineddata) for whichever language is selected. This site overrides all three to serve them from its own servers instead (/tesseract-core, /tesseract-worker, and /tessdata respectively), and disables the CDN's default gzip-compressed transfer format in favour of serving the plain .traineddata files directly. The practical effect: recognising an image on this page makes zero requests to any third-party domain — every byte involved, including the multi-megabyte language model, is served from the same site the page itself loaded from.\n\nThe 16 supported languages use the "fast" variant of Tesseract's trained models — a deliberately compact model (roughly 1-4MB per language, larger for languages with more complex scripts such as Cyrillic or Greek) that trades a small amount of accuracy, versus the much larger "best" model variant, for a dramatically smaller download and faster in-browser initialisation. For the great majority of everyday OCR use — reading a screenshot, a scanned form, a photographed sign — this trade-off is not noticeable; it matters most on very low-quality source images where every bit of model accuracy helps.\n\nSwitching languages mid-session loads that language's model fresh (the previous language's worker is terminated and a new one initialised), so recognising the same image in a different language always uses that language's dedicated model rather than reusing a mismatched one. The English + Romanian combined mode loads both languages' models into a single worker and lets Tesseract's own internal logic decide, word by word, which language's vocabulary and character set best explains each piece of text — useful for genuinely bilingual documents, though it is slightly slower to initialise than a single-language model since two full trained models load instead of one.

Frequently Asked Questions

Which languages are supported?
English, Romanian, French, German, Spanish, Italian, Portuguese, Dutch, Polish, Czech, Hungarian, Swedish, Greek, Russian, Ukrainian, and Turkish, plus a combined English + Romanian mode for mixed-language text.
Is my image uploaded to a server?
No. Recognition runs entirely in your browser using a WebAssembly build of the Tesseract OCR engine. Your image, and the text extracted from it, never leave your device — and even the recognition model itself is fetched from this site's own servers, never a third-party service.
Why do I need to pick the correct language before scanning?
Each language uses its own separately trained recognition model. Picking the wrong language means the model may not recognise characters specific to your text's actual language (like Romanian's ă, â, î, ș, ț) and can produce visibly corrupted or missing characters. Always match the selected language to what's actually written in the image.
Can this tool read a document with both English and Romanian text?
Yes — select "English + Romanian (mixed text)" from the language list. This loads both languages' recognition models together and lets the engine determine which language best explains each part of the text, useful for bilingual forms or documents.
Why is the first recognition in a language slow, but later ones faster?
The first time you use a given language, your browser downloads that language's trained recognition model (a few megabytes) plus the WebAssembly recognition engine. Your browser caches both, so recognising another image in the same language afterward starts almost instantly.
Why did the extracted text come out wrong or garbled?
OCR accuracy depends heavily on image quality. Low resolution, blur, skewed or rotated text, unusual fonts, handwriting, and busy backgrounds all reduce accuracy. Selecting the wrong language is another common cause — double-check the language matches the text before re-scanning.
Can this tool read handwriting?
It can attempt to, but handwriting recognition is significantly less reliable than printed text with any OCR engine, including this one — Tesseract's models are trained primarily on printed fonts. Clear, well-formed handwriting sometimes recognises reasonably well; cursive or inconsistent handwriting often does not.
Is there a file size or image resolution limit?
No hard limit is enforced by the tool itself, but very large images take longer to process since recognition runs on your device rather than a server. A moderately sized, clear image (roughly 1000-2000 pixels on the longer side) is usually the sweet spot between recognition accuracy and processing time.
Why does the tool download several megabytes for some languages?
Each language's trained recognition model is a real neural network file, and languages with more complex scripts (Cyrillic for Russian/Ukrainian, Greek) or larger character sets tend to have larger models. This is a one-time download per language per browser, cached afterward.
Does this tool preserve line breaks and paragraph formatting?
Reasonably well for clean, well-structured source images — Tesseract detects text lines and paragraph blocks and reproduces that structure in the extracted text. Complex multi-column layouts or tables may not extract in the exact visual order they appear in the source image.
Can I use this for a scanned PDF page?
Yes, as long as you provide it as an image (a screenshot or exported page image) rather than the PDF file itself — this tool recognises text from images, not from PDF documents directly. For a searchable PDF, other tools in the PDF Tools category can help convert or extract pages as images first.

Part of These Collections

Also Available As

image to text, ocr online, extract text from image, photo to text, scan to text, ocr romanian, ocr english, text recognition online, tesseract ocr browser

Found a Problem?

Let us know if something with Image to Text (OCR) isn't working as expected.

Thanks — we'll take a look.