You have a screenshot, a scanned page or a photo of a notice, and you need the words as text. Typing it all out is slow and easy to get wrong. OCR can read the text for you. It is not perfect, but on a clear image it saves a lot of typing.
This guide explains what OCR is, what it reads well, and how to use our free Image to Text tool. It also shows how to check the result, because OCR mistakes are easy to miss.
What Is OCR?
OCR means optical character recognition. The software looks at the shapes in a picture and works out which letters and numbers they are. The result is plain text that you can copy, search and edit.
Our tool uses Tesseract.js. It is a free, open-source OCR engine that runs inside your web browser. It is built for printed text, not handwriting.
What OCR Reads Well, and What It Struggles With
OCR works best when the image looks like a clean printed page. The further your image is from that, the more mistakes you should expect.
| Usually good | Often poor |
|---|---|
| Screenshots of websites, apps and documents | Handwriting, most of all joined-up writing |
| Clear scans of printed pages | Dark photos, shadows, or glare on glossy paper |
| Straight, well-lit photos of a flat page | Curved pages near a book's spine |
| Dark text on a plain light background | Tiny text, decorative fonts, text on busy pictures |
| Simple paragraphs in one column | Tables, forms and pages with many columns |
Good uses include copying an error message from a screenshot, getting the text of a printed letter, or pulling a quote from a scanned article. Receipts can work if the photo is sharp, but check every number.
Need text from an image now? Try the free Image to Text tool. No signup, and your image is read in your browser.
How to Extract Text from an Image, Step by Step
Step 1: Pick the language
Open the Image to Text tool and choose the language of the text from the list. It starts on English. The tool reads one language per run, so pick the one most of your text is in.
Step 2: Add one image
Drop the image on the box, or click the box to choose a file. JPG, PNG, WebP and BMP work well. Some phones save photos as HEIC. Save those as JPG or PNG first. The tool reads one image at a time. If you drop several files, only the first one is used.
Step 3: Click Extract Text
A progress bar shows each stage. The first run is the slowest. Your browser has to download the OCR engine and the data file for your language from the jsDelivr CDN, a public file host. Each language file is about 1 to 3 MB. Your browser usually keeps a copy, so later runs in the same language start faster.
Step 4: Copy or download the result
The text appears in the Extracted Text box as plain text. There is no bold, no font size and no table layout. The box is read-only. Click Copy to Clipboard, or Download as TXT to save extracted-text.txt. Then fix any mistakes in your own editor.
Tips for Better Results
- Crop to the text. Remove borders, desk edges, photos and logos. Less noise means fewer strange characters. You can use our Crop Image tool. For a page with two columns, crop and read each column on its own.
- Hold the camera straight. Take the photo from directly above the page. Lines of text should be level, not sloping.
- Use even light. Daylight from a window works well. Avoid your own shadow and the flash on glossy paper.
- Make sure the text is big enough. Open the image and zoom to 100%. If you can read the smallest words easily, the engine has a good chance. If you have to squint, it will struggle too.
- Pick the right language. Picking English for a Chinese or Arabic image gives nonsense, because the English model does not know those characters.
Check the Result
Always read the result next to the original image, most of all numbers, names, dates and prices. The tool does not show how sure it is about each word, so you need to check yourself. These characters are mixed up most often:
- 0 and O (zero and the letter O)
- 1, l and I (one, small L and capital i)
- rn and m, so “turn” can become “tum”
- 5 and S, and 8 and B
- Commas and full stops, which matter a lot in prices
For example, a receipt line that says Total 110.00 might come out as Tota1 1l0.O0. It looks close, but the number is wrong.
Which Languages Are Supported
The language list has exactly 10 languages:
- English, Spanish, French, German and Portuguese
- Chinese (Simplified), Japanese and Korean
- Hindi and Arabic
Other languages, such as Nepali, Russian or Italian, are not in the list. Hindi uses the same Devanagari script as Nepali, so it may read some Nepali text, but expect more mistakes. If a page mixes two languages, pick the main one. Words in the other language may come out wrong.
Text from a Scanned PDF
This tool accepts images only. A scanned PDF is really a set of page images, so it takes two steps. First, turn each page into an image with PDF to Image. Then upload the pages here one at a time. If you can already select text in your PDF viewer, the PDF has real text inside, and you do not need OCR. Just copy it.
Privacy
Many online OCR services upload your image to their servers. This tool does not. Tesseract.js reads your image inside your own browser, and the image is not sent to FreeToolPoint or anyone else.
Your image stays on your device. The only things downloaded are the OCR engine and the language data, which come from the jsDelivr CDN the first time you use a language.
This makes the tool a good fit for letters, forms and notes that you would rather not upload.
Summary
OCR turns a picture of printed text into text you can copy. It works best on clear, straight, well-lit images of printed text in one of the 10 supported languages. It struggles with handwriting, tables and poor photos. Whatever the image, check the result before you use it.
Try it with your own image: open the free Image to Text tool.