OCR — Image to Text
Extract text from photos, screenshots, and scanned pages. Runs in your browser where supported — your image is not uploaded.
What OCR — Image to Text is good for
The tool solves one specific problem: text that lives inside an image and can't be selected or copied. That covers a lot of everyday situations. You photograph a printed contract, a recipe card, or a page from a library book and want the words as editable text instead of retyping them. You have a screenshot of a chat, an error message, or a slide where the text isn't selectable, and you need to quote it. You scanned an old letter, an invoice, or a receipt and want a searchable copy.
It also helps with multilingual material. Because you choose the language before running, you can pull Spanish, French, German, Italian, Portuguese, Russian, Simplified Chinese, Japanese, Korean, Arabic, or Hindi text — not only English. Students digitise printed notes and textbook pages, translators get a rough text layer to work from, and developers grab the wording of an on-screen message to search a codebase or log a bug. Anywhere you'd otherwise squint and type by hand, this gives you a draft to clean up instead.
How to use it
Getting text out takes a few clicks. Load an image, pick the matching language, run recognition, then copy or download the result. Proofread the extracted text before saving it.
The first run may need to download the OCR engine and selected language model. A loaded worker and cached model data can reduce startup time on later runs, but cache availability and initialization depend on the browser and session.
An illustrative example, start to finish
Say you photographed a one-page printed flyer for an event and you want the date, address, and contact details as text you can paste into a calendar invite. Open the OCR tool and drag the photo onto the drop area — the source preview appears. Leave the language on English, since the flyer is in English.
Click Extract Text and wait while the recognition model loads and processes the page. Compare the editable result with the image, paying special attention to phone numbers, dates, names, and punctuation where one wrong character matters. Correct any mistakes in the box, then copy the text or download the cleaned version. The selected image is processed by the recognition code in your browser and is not uploaded to the site server; the page still makes ordinary requests for site resources and the listed OCR model or library.
Supported input and output
Input is any image your browser can decode that contains text — JPG, PNG, WebP, GIF, BMP, and similar are all fine, whether it's a camera photo, a screenshot, or a scan saved as an image. You add it by dragging it onto the drop zone or using the Choose File button; the file picker is filtered to image types.
Output is plain text. It shows in the editable text box where you can correct it, and from there you have two ways to keep it: Copy puts the text on your clipboard, and Download .txt saves a UTF-8 text file (named after your source image, so flyer.jpg becomes flyer.txt). The status line also reports word count, character count, and a confidence percentage so you can judge how trustworthy the read is before you rely on it.
How your file is processed
This OCR tool runs in your browser using the Tesseract recognition engine, which loads from a CDN on first use. The image is read and the text is recognized on your device, and the image is not uploaded to a server.
Quality and honest limitations
OCR is recognition, not magic, and accuracy depends heavily on the input. Sharp, high-contrast, upright text on a plain background reads best — think a clean screenshot or a flat, well-lit scan. The confidence percentage in the status line is a useful gauge: a high number usually means a clean read, while a lower one is a hint to proofread carefully.
Several things reliably hurt accuracy. Blur and low resolution make characters mushy. Skew and rotation (a page photographed at an angle) confuse line detection. Low contrast — grey text on a grey background, or a photo with glare and shadows — drops letters. Decorative or unusual fonts, dense tables, multi-column layouts, and handwriting are all harder than plain printed paragraphs. The engine also recognises one language per run, so a page mixing two scripts will only resolve cleanly in the language you selected. Treat the output as a strong first draft you skim and fix, not a guaranteed perfect transcription.
Common problems and fixes
'The first run is slow or seems stuck.' Loading the engine and language model, initializing recognition and processing the image can take time. Watch the status and progress bar. A later run in the same language can be faster if resources are already loaded; if an error appears, check the connection and retry.
'The text is full of garbled characters or the confidence is low.' The input is probably blurry, skewed, low-contrast, or low-resolution. Retake or rescan it straighter, closer, and in better light, then run again — small improvements in the image produce large improvements in the text.
'I got mostly nonsense even though the image is clear.' Check the language selector. If the text is Spanish but English is selected, recognition will struggle; pick the matching language and re-run (this loads that language's model the first time).
'The OCR engine failed to load.' This needs the Tesseract script and model from the network, so a blocked connection, an aggressive content blocker, or going offline before the model is cached can stop it. Reconnect, disable the blocker for this page, and reload.
'Copy didn't work.' Some browser settings restrict clipboard access. The text box is editable and selectable, so you can select all and copy manually, or use Download .txt instead.
Tips for the best results
Feed the engine the cleanest image you can. If only part of the picture has the text you need, crop to that region first so the engine isn't distracted by background or photos. If the page was shot at an angle, straighten it so the lines are horizontal before running — upright text is far more reliable.
Set the language to match the text before clicking Extract Text, especially for non-Latin scripts such as Chinese, Japanese, Korean, Arabic, and Hindi. Treat the confidence figure as a relative warning signal, not a calibrated promise: even a high score can hide a wrong digit or name. Compare the whole result with the source when accuracy matters, then edit the box before copying or downloading.
Frequently Asked Questions
Which languages can it recognise, and do I have to choose one?
The selector offers 12 languages: English, Spanish, French, German, Italian, Portuguese, Russian, Simplified Chinese, Japanese, Korean, Arabic, and Hindi. English is the default, and recognition uses one selected language per run. Choose the language that matches the image; a mismatch can reduce recognition quality. Proofread the result because accuracy also depends on the image, typeface and layout.
Why is the first run slower than later ones?
The first run may need to download the OCR engine and selected language model and initialize the worker. The page can reuse a loaded worker for another run in the same language, and the browser may cache model data. Later runs can start faster, but recognition still takes time. Changing language, clearing storage, browser cache limits or a fresh session can require loading or downloading resources again.
What do the word count, character count, and confidence percentage mean?
The word and character counts summarize the extracted text; words are counted by whitespace and the character count includes output whitespace. Confidence is the OCR engine's estimate, not a measured percentage of correct characters. Even a high score can hide an incorrect name or digit, so compare important text with the source image before using it.
Related tools and guides
Crop the image to the text region first · Rotate or straighten a tilted scan · Compress the screenshot afterwards · Turn a PDF page into an image to OCR · How to remove photo metadata before sharing · Reduce image size without losing quality