Tools/Image Tools/Image to Text (OCR)

Image to Text Free Online - Extract Text from Photo

Extract printed text from an image with OCR in English, Urdu, Arabic, French, German or Spanish, then edit, copy or download it as .txt. Runs in your browser.

If this tool isn’t working as expected, please take a screenshot of the error and report the problem here so we can investigate and improve it.

About this tool

OCR solves a specific problem: text that's visually present in an image but not selectable as real characters. A screenshot of an article, a photo of a printed page, a scanned receipt, or a slide exported as an image all lock their text inside pixels - you can't select, search, or copy it directly.

This tool runs Tesseract.js, an open-source OCR engine, against your image entirely in the browser, so the image itself never leaves your device - a real advantage for receipts, forms, or other sensitive material. After recognition the text appears in an editable box, so you can correct mistakes before using it, with a recognition confidence figure and a count of words the engine was unsure about to show you where to look.

Copy it, or download it as a UTF-8 .txt file named after your image.

This OCR (optical character recognition) tool reads printed or typed text from an image - screenshots, scanned documents, receipts, or photos of pages - and turns it into text you can edit, copy or save as a .txt file. Choose the language of the text first: English, Urdu, Arabic, French, German or Spanish. Recognition runs on Tesseract.js directly in your browser, using engine and language files served by this site itself, so your image and the extracted text are never uploaded anywhere. Like all Tesseract-based OCR, it is built for machine-printed and typed text - handwriting recognition is unreliable and not a supported use case.

How to Use Image to Text (OCR)

Upload Image

Upload an image containing printed text such as documents, screenshots, or photos.

Extract Text

The OCR engine scans the image and extracts readable text automatically.

Review Output

Review the extracted text for accuracy before copying it - the result is read-only in this tool.

Copy or Use Text

Copy the extracted text to clipboard and use it anywhere instantly.

Common Workflows

Upload an Image

Choose a JPG, PNG, WebP or other image, or drag one onto the page. Use Replace image to switch to another.

Choose the Language

Pick the language the text is written in. Changing it later doesn't start a new run by itself - click Extract again.

Extract Text

Click Extract Text. Steps and a progress bar show the engine loading, the language loading and the reading.

Check, Edit and Save

Review the confidence figure, correct the text in the box, then Copy Text or Download .txt.

Best For

  • Reads English, Urdu, Arabic, French, German and Spanish text from JPG, PNG, WebP and other browser-readable images. Urdu and Arabic results are shown right-to-left, with the letters kept as real Unicode text.
  • The result is editable. Fix recognition errors in the box, then Copy Text or Download .txt - the file contains exactly the text you see, edits included. Restore OCR text brings back the original result.
  • A recognition confidence percentage (with a High, Medium or Low label) and a count of low-confidence words are shown. It tells you how sure the engine was, not how accurate the text is, so always read the result.

Examples

Reading a French receipt and saving it as text

Input

receipt.jpg - a photo of a printed receipt, Language set to French

Output

Editable text in the result box, a recognition confidence figure, and a download named receipt-ocr.txt

Recognition runs locally with the French language data. Fix any misread words in the box before copying or downloading; the downloaded file matches what is in the box.

Use Cases

Extracting text from scanned receipts or invoices

Choose the receipt's language, extract, check the low-confidence words, and copy or download the text.

Copying text from screenshots you can't select

Extract text from error messages, article screenshots or slides exported as images.

Getting Urdu or Arabic text out of an image

Select Urdu or Arabic so the right language data is used; the result is shown right-to-left and downloads as UTF-8 text.

Common Mistakes

Problem

Leaving the language on English for non-English text

Solution

Text in another language is misread badly with the wrong language selected. Choose the language of the text, then click Extract Text or Extract again.

Problem

Expecting handwriting to be recognized

Solution

Tesseract.js is built for machine-printed and typed text. Handwriting recognition is unreliable and will often produce garbled or incomplete results.

Problem

Treating the confidence figure as accuracy

Solution

Recognition confidence shows how sure the engine was about the letters it chose. A high figure doesn't guarantee correct text, so read the result before using it.

Problem

Mixing two languages in one image

Solution

Only one language is used per run. For a page with two languages, extract once for each and combine the text.

Tips & Best Practices

Use a clear, well-lit, high-resolution source image

Sharp, high-contrast printed text gives the best results. Blurry, skewed or low-resolution images give lower confidence.

Check the low-confidence words first

The result shows how many words the engine was unsure about. Numbers, names and unusual spellings are the usual ones.

Edit before you copy or download

The text box is editable, and Copy Text and Download .txt both use exactly what is in it.

Phone photos are handled upright

A photo saved sideways with a rotation tag is turned upright before it is read, and very large photos are scaled down first so the browser stays responsive.

Limitations

Six languages, one at a time

English, Urdu, Arabic, French, German and Spanish are supported. Each run reads one language; there is no automatic language detection and no translation.

Printed text only

Tesseract.js, the OCR engine used here, is designed for machine-printed and typed text. Handwriting recognition is unreliable and not a supported use case.

No layout or table recovery

The result is plain text. Columns, tables and formatting are not preserved, and there is no PDF or Word export - only Copy Text and a .txt download.

Large images are scaled down

To keep recognition fast and your browser responsive, an image larger than about 4000 pixels on its longest side or about 12 megapixels is scaled down before it is read, and the tool tells you when it did. An image of more than about 150 megapixels is refused. Your original file is never changed.

The first run downloads the OCR files from this site

The engine (about 3 MB) and the chosen language (about 1 to 3 MB) are served by this site, not a third-party CDN, and your browser keeps them for later runs. You need to be online for that first download. If a download fails or stalls, the tool says which language could not be loaded and a run that takes longer than two minutes is stopped; click Try again.

Comparisons

Handwriting vs. Printed Text

Tesseract.js is built for one of these two inputs.

Printed or typed textHandwriting
Recognition engine fitTesseract.js is trained and built for this - the intended use caseNot a supported use case - Tesseract-based engines aren't designed for handwriting
Typical accuracyGenerally reliable on clear, well-lit source imagesUnreliable - expect missing words, garbled characters, or empty results

Which should you use?

Use OCR image to text for printed and typed text. For handwriting, expect to retype most of it.

FAQs

The most common questions are which languages are supported and whether the image is uploaded. Six languages are supported, the image is never uploaded, and the OCR files come from this site rather than a third-party CDN. The FAQ below also covers confidence, editing, saving as .txt and large photos.

Is my image uploaded to a server when I use this OCR tool?

No. Text recognition runs in your browser using Tesseract.js, and your image and the extracted text are never sent anywhere. The OCR engine and the language data (about 1 to 3 MB per language) are served by this site itself rather than a third-party CDN, and your browser caches them after the first run.

Which languages does it support?

English, Urdu, Arabic, French, German and Spanish. Choose the language of the text before clicking Extract Text; each run reads one language. There is no automatic language detection or translation.

What does the confidence figure mean?

Recognition confidence shows how sure the engine was about the characters it chose, from 1 to 100%, labelled High, Medium or Low. It is not the same as accuracy, so always read the result. Where the engine is unsure about individual words, the tool also tells you how many, so you know where to check. If the engine returns no usable confidence, the tool says Not available instead of showing 0%.

Can I edit the extracted text?

Yes. The result appears in an editable box, so you can fix recognition errors. Editing never re-runs OCR, and Restore OCR text brings back the original result. If you run Extract again, the text in the box is replaced.

Can I download the text as a file?

Yes. Download .txt saves exactly the text in the box (including your edits) as a UTF-8 text file named after your image, for example receipt.jpg becomes receipt-ocr.txt. Urdu, Arabic and accented letters are preserved. Copy Text puts the same text on your clipboard.

Can this tool read handwritten text?

Not reliably. Tesseract.js, the OCR engine behind this tool, is built for machine-printed and typed text. Handwriting recognition is a different problem this tool doesn't target, so results on handwritten notes are often garbled or incomplete.

What happens with a very large photo?

A photo larger than about 4000 pixels on its longest side or about 12 megapixels is scaled down before it is read, and the tool tells you so. Your original file is not changed. Photos saved sideways with a rotation tag are turned upright first. An image of more than about 150 megapixels is refused with a message.

Why did I get an error or no text extracted?

The upload step rejects anything that isn't an image file. If a valid image fails to produce text, common causes are the wrong language selected, low resolution, heavy blur or glare, handwritten content, or a genuinely blank image - try the right language and a clearer printed-text image. If the page says a language (for example Urdu) could not be loaded, click Try again. A run that takes longer than two minutes is stopped with a message, and your image stays in place.

Can I replace the image or drag one in?

Yes. Drag one image onto the upload area or onto the page, or use Replace image at any time. Replacing the image clears the old text and confidence. Clear removes the image and the text.

Get more tools like this

Leave your email so we can prioritize similar tools and updates.