How to convert an image to text
- Add the image. Choose a file, drop it on the box, or paste a screenshot with Ctrl+V (⌘V on a Mac). On a phone, choosing a file also offers the camera, so you can photograph a page, a sign or a receipt right away. You can add several images at once.
- Pick the language of the text. English is the default. For any other language, Also recognize English stays on, so English words, brand names, email addresses and links inside the text come out right; turn it off for a slightly faster read of a single language.
- Wait a few seconds. The counter shows the progress. The first time, your browser downloads the text engine and the language data — about 3.3 MB for English. They are stored in your browser, so later visits start almost at once.
- Copy or download. Each image's text has a Copy button, and Download .txt saves it as a plain-text file — one per image, plus one file with all of them when you add several. Paste the text into Word, Google Docs, an email or a spreadsheet, and correct anything that was misread.
How it works
The text is recognized by Tesseract, the optical character recognition (OCR) engine developed at Hewlett-Packard, released as open source in 2005 and developed further with Google's sponsorship. The tesseract.js project compiles it to WebAssembly, so it runs inside this page like any other program on your device. Since version 4, Tesseract reads whole lines with an LSTM neural network instead of matching letters one at a time; this page uses the compact "fast" models from the official tessdata_fast collection.
Each image is first turned upright using the rotation stored by the camera, then read as it is. When Tesseract's confidence comes out below 85% — typical of shadowed or grainy phone photos — the page also evens out the light: it estimates how bright the paper is across the picture, divides that out, and makes the background white and the letters black. It reads that version too and keeps whichever result Tesseract is more confident about. Screenshots and clean scans normally skip this step, which matters because evening out can wash out white text on a colored bar.
How accurate is it? Our test
We drew 23 test images in the browser — a 169-character sample (a sentence, an invoice number, a date, an amount, an email address and a phone number) in common fonts and sizes, short texts in other scripts, and copies made to look like a phone photo: gray, unevenly lit paper, grain, JPEG compression and a slight tilt. The recognized text was compared with the original character by character (accuracy = 1 − edit distance ÷ length), in Microsoft Edge in October 2026:
| Test image | Character accuracy |
|---|---|
| Clean text, 18–28 px (Arial, Georgia, Times New Roman, Courier New) | 100% |
| Small screen text, 11–12 px (Segoe UI, Verdana) | 98.8–99.4% |
| White text on dark blue; light gray text on gray | 100% |
| Very small text, 9 px | 92.3% |
| Phone-photo look, tilted 3° | 99.4% (unusable without the light correction) |
| Phone-photo look, tilted 7° | 93.5% |
| Spanish, German, Russian, Japanese, Simplified Chinese, Hindi | 100% |
| Arabic, clean and with the phone-photo look | 98.7% (a comma read as a letter) |
| Handwriting-style font (Caveat) | 100% |
| Cursive script font (Great Vibes) | 82.8% |
Real photos are messier than generated ones, so expect somewhat lower numbers. The pattern holds, though: errors come from tiny letters, tilt, blur and decorative lettering far more than from the language.
Tips for better results
- Make the letters big. Tesseract's own guide to improving output quality recommends scans of about 300 DPI and says accuracy drops quickly when lowercase letters are under about 10 pixels tall. Crop close to the text, zoom in before you take a screenshot, or move the phone closer.
- Screenshot rather than photograph a screen. A screenshot has perfectly sharp letters; a photo of a monitor adds stripes and glare.
- Light evenly and shoot straight on. Hold the phone parallel to the page, and avoid your own shadow and the glare of a flash on glossy paper.
- Choose the right language. With English selected, accented and special letters (é, ñ, ß, ç) tend to be replaced by the nearest English letters.
- One column at a time. For newspapers, brochures and two-column layouts, crop each column into its own image so the lines don't get mixed.
Your images stay on your device
Most online OCR services upload your picture to a server. Here nothing is uploaded: the engine and the language data come from this site, and your browser does the recognition on your own computer or phone. That matters for the things people most often need to copy text from — ID cards, contracts, bank details, medical letters, screenshots of private messages. The downloaded engine and language data are kept in your browser's storage (IndexedDB) so they don't have to be downloaded again; your images and their text are not stored anywhere.
Limits
- Handwriting: the models are trained on printed text. Neat block capitals often work; joined-up handwriting and signatures usually don't — even our cursive font dropped to 83%.
- Layout: you get plain text in reading order. Line breaks are kept, but columns, tables, fonts, bold, colors and pictures are not; a table comes out as lines with the cells separated by spaces.
- Vertical text: only horizontal lines are read, so vertical Japanese or Chinese and titles running up the spine of a book aren't recognized.
- PDF files: not directly. Turn the pages into images with the PDF to JPG converter (300 DPI for small print), then add those images here.
- Not text: math formulas, music notation, logos in decorative lettering and CAPTCHAs aren't reliably recognized. QR codes are read by the QR code scanner.
- HEIC photos from an iPhone are normally converted to JPG when you pick them in a browser; if one doesn't open, export it as JPG first.
Languages
24 languages: English, Arabic, Bangla, Chinese (Simplified), Dutch, French, German, Hebrew, Hindi, Indonesian, Italian, Japanese, Korean, Malay, Persian, Polish, Portuguese, Russian, Spanish, Thai, Turkish, Ukrainian, Urdu and Vietnamese. Each language downloads only when you choose it, between 0.3 MB (Persian) and 3 MB (Dutch). Right-to-left text such as Arabic, Hebrew and Persian is shown right to left and copies in the correct order.
To count the words of the text you extracted, paste it into the word counter; to send the original picture by email, shrink it first with the image compressor.
Frequently asked questions
Is this image to text converter free?
Yes. There is no sign-up, no limit on the number of images and no watermark.
Are my images uploaded?
No. Your browser recognizes the text on your own device; only the page, the text engine and the language data are downloaded from this site.
How do I copy text from a screenshot?
Take the screenshot (Windows: Win+Shift+S, Mac: Shift+Command+4), click this page and press Ctrl+V or ⌘V. The text appears below with a Copy button.
Can it read handwriting?
Only neat, printed-style handwriting, and not reliably. The models are trained on printed text, so cursive handwriting and signatures mostly come out wrong.
Can I convert an image to Word?
You get plain text: copy it or download the .txt file and paste it into Word or Google Docs. Fonts, tables and columns are not kept.
Why are some letters wrong?
Small, blurry, tilted or unevenly lit text and decorative fonts cause most errors, and so does choosing the wrong language. Crop closer, photograph straight on in good light, and check numbers and names before you use them.
Does it work without internet?
Once the page has loaded and the language data has been downloaded, the recognition itself runs without a connection.
Last updated: October 15, 2026