Image to Text (OCR)

Global tools

Point a recognizer at a picture of text and get the words back: a screenshot of a paragraph, a photo of a receipt, a scan of a page, a sign, a filled-in form. This page does that with a full OCR engine - the same kind of text recognition that has been reading scanned documents in archives and libraries for decades - running on the device in front of you.

Drag & drop files here, or .

Everything is processed in your browser - nothing is uploaded.

    Up to 10 pictures, 25 MB each. They are decoded and read inside this browser tab, so nothing is uploaded - the recognition engine and the model for the language you pick are downloaded to your browser the first time you use them, and cached afterwards.

    Only the models for the language you choose are downloaded, and only when a picture is actually read: the first run costs about 4.2 MB for English, 2.9 MB for Chinese, or 5.7 MB for both - and after that the model is cached in your browser, so the second picture and the second visit skip the download.

    This is the OCR engine’s page segmentation mode. If a picture comes back as nonsense, changing this is the first thing to try - it is usually the layout analysis that is wrong, not the letters.

    Only used for the plan below, before any picture is chosen. The real job uses the files themselves.

    Results update as you type. Nothing leaves your device.

    Plan for 2 pictures

    English text, in this tab

    Each picture is read by the OCR engine in this browser tab, and the text comes back as a box you can copy and a .txt file you can download. The first run downloads about 4.2 MB of engine and English model, once.

    Pictures per job
    up to 10
    Language
    English
    Layout
    Automatic
    First run
    about 4.2 MB

    What happens when you add a picture

    1. The engine and the English model load from this site - not from a CDN - the first time you use them: about 4.2 MB, of which the model is 2.82 MB (already compressed; the engine core compresses to about 1.1 MB).
    2. The model is cached in your browser afterwards, so the second picture and the second visit are much faster.
    3. The OCR engine finds the lines, reads the letters and reports its own confidence, all on your device.
    4. You get the text in the page, a copy button, and a .txt download per picture. Nothing is uploaded and no text is sent anywhere.
    OCR is pattern recognition, not reading. Clean, straight, high-contrast printed text comes out almost perfectly; handwriting, curved book pages, low-light phone photos, unusual fonts and text over a picture all come out worse - sometimes much worse. The OCR engine does not understand what the words mean, so it cannot correct itself from context the way a person does. Read the result before you trust it.

    What each layout mode is for

    ModeBest forWhat the OCR engine does
    Automatic - one or more columns of textscanned pages, books, anything with paragraphsThe OCR engine works out the layout itself. The right choice for a scanned page, a book, or a document with several blocks.
    One block of texta label, a paragraph, a number plateTreats the picture as a single uniform block - a paragraph, a label, a number plate. The most accurate mode when the guess above gets it wrong.
    A single linea serial number, a receipt header, one question boxOne line of text, for a receipt header, a serial number or a single question box.
    Sparse text - scattered wordssigns, packaging, screenshots of an interfaceFinds as much text as it can wherever it is, without assuming it is arranged in paragraphs. Useful for signs, packaging and screenshots of interfaces.

    If the text comes back as nonsense, change the mode before you change anything else: automatic layout analysis is the usual culprit on a picture that is not a document.

    English and simplified Chinese ship with this page, and only the models you pick are downloaded - a size decision rather than a technical one, since every language is another few megabytes of trained data somebody has to fetch. The engine is a trained OCR model of the kind that has been reading scanned documents in archives and libraries for decades.

    That last part is the reason this page exists at all. Most OCR sites read your document by uploading it to a server, which is an odd thing to do with a passport scan, a payslip or a letter from a solicitor. Here the picture is read in the tab, the recognizer runs there too, and the text never leaves it. The price is honest and up front: you download the recognizer yourself, about 4 MB the first time, and your browser caches it afterwards.

    Two languages are included - English and simplified Chinese, plus a combined model for a page that mixes the scripts - and you choose which one to read with. Only the models you pick are downloaded, and only when you read a picture: 2.9 MB of English model, 1.6 MB of Chinese, or both. Nothing about that choice costs the visitor who never needs it.

    About this image to text (ocr)

    Reading words out of a photograph is a job that most sites do by uploading the picture first, which is an odd thing to do with a passport scan, a payslip or a signed letter. This page reads the words with an on-device text recognizer that runs inside the tab you already have open.

    The recognizer and the model you choose are downloaded from this site rather than a CDN and kept by the browser after the first use, so no request leaves for a third party while a document is being read. English, simplified Chinese or both, and only the ones you pick are fetched. All of it runs on your own device, and not one pixel of the picture is uploaded anywhere.

    This page reads clean printed text and is honest about the rest: handwriting is largely out of scope, a tilted page fights the line finder, and low contrast or tiny type costs accuracy before the recognizer ever sees a letter. It reports the recognizer’s own confidence and never tidies the output, so what you read is what it really recognized.

    How this image to text (ocr) works

    What OCR actually does, and why it fails the way it does

    The OCR engine works in stages. The picture is converted to black and white with a threshold that has to guess where the paper ends and the ink begins; the dark shapes are grouped into lines, then into words, then into characters; a neural network - an LSTM, trained on millions of lines of scanned text - reads each character in the context of the ones around it; and a dictionary pass nudges the result towards real words. Nothing in that chain involves understanding. The recognizer does not know what a word means, so it cannot notice that "reciept" is wrong, and it will happily return a sentence that reads plausibly and says something else.

    That is also why the failure modes are so predictable. Handwriting throws out the character shapes the model was trained on, so it is mostly out of scope - clean block capitals sometimes work, joined-up writing rarely. A page photographed at an angle gives the line finder a fight. Low contrast, shadows, a phone flash, thin fonts, text over a photograph, and print below about ten pixels tall all cost accuracy in the same way: the letters stop being distinguishable before the network ever sees them.

    The confidence number in the results is the recognizer’s own estimate for the whole picture, and it is worth reading: above 90 usually means clean print recognized correctly, the sixties usually means something was hard - and it is a warning to check the text rather than trust it. Nothing here corrects, spell-checks or tidies what came back, because a tool that quietly rewrites your document is worse than one that shows you what it really saw.

    The megabytes, and why they come from this site

    A recognizer is not a formula, it is a trained model, and a trained model is data. The recognition core that runs in your browser is 2.8 MB (about 1.1 MB over the wire once the server compresses it), and a model is another few megabytes that are already compressed: 2.8 MB for English, 1.6 MB for simplified Chinese. Together with the supporting files that is about 4.2 MB for English, downloaded the first time you read a picture here and never seen again - the browser stores the model locally, so the second picture and the second visit start immediately.

    Those files are served from this site rather than from a CDN, which is a deliberate choice. A CDN would be smaller for us and faster for you, and it would also mean a page on this site quietly contacting a third party the moment you use a tool - on a site whose whole promise is that your documents stay yours. So the files are served from this site’s own address, shipped with the page, and you can check the list of requests your browser makes to confirm that every request during a recognition is same-origin.

    Which model you get is a choice, and it is the only place in this tool where the size of the download depends on the reader. English alone is the default and 2.8 MB of model; Chinese alone is smaller still, because its model is 1.6 MB; the combined model is twice the data but reads a contract with English names in it without falling back to guesses. A picture in a language the loaded model was not trained on comes back full of words it thinks it can see, because that is what a recognizer does when it is asked to read something it was never taught.

    Layout modes, and the first thing to try when it reads nonsense

    The OCR engine has to be told roughly what kind of page it is looking at, and the setting is called page segmentation. "Automatic" lets it find blocks and columns itself, which is right for a scanned page or a book. "One block of text" treats the picture as a single paragraph, which is the most accurate mode for a label, a number plate or a screenshot of a message. "A single line" is for a serial number or a receipt header. "Sparse text" hunts for words anywhere, without assuming paragraphs, which suits signs, packaging and screenshots of an interface.

    Getting this wrong is the most common reason a perfectly readable picture comes back as gibberish: the letters were read correctly but the line analysis rearranged them. So the order of troubleshooting is: change the mode, then straighten and brighten the picture, then enlarge it. Cropping to just the text helps more than anything else, because it removes the parts the recognizer has to decide to ignore.

    What helps accuracy, in the order it helps

    The first fix is almost always cropping: the recognizer has to decide which parts are text and which are not, so removing the margins shrinks its job to the words. Straightening and brightening come next, because the line finder is what breaks on a tilted page and the threshold is what breaks on a dark one.

    Resolution matters too - a word the eye reads at 12 pixels tall is usually beyond a recognizer, and doubling the page is the difference between silence and a result. None of it guarantees a clean read, because OCR is estimation, but crops, straighten, brighten, enlarge fixes more pictures than any setting on the form.

    Worked examples

    Each example below was run through the calculator on this page when the site was built, so the numbers match what you see when you enter the same inputs.

    A scanned page of print

    How the text is laid out: Automatic - one or more columns of text

    Plan for 2 pictures

    English text, in this tab

    Each picture is read by the OCR engine in this browser tab, and the text comes back as a box you can copy and a .txt file you can download. The first run downloads about 4.2 MB of engine and English model, once.

    Pictures per job: up to 10 · Language: English · Layout: Automatic · First run: about 4.2 MB

    The automatic layout mode is the right start for anything that looks like a document: the OCR engine running in this tab finds the blocks and columns itself, and clean print of a normal size comes back at a confidence above 90.

    A serial number, a plate, one line on a label

    How the text is laid out: A single line

    Plan for 2 pictures

    English text, in this tab

    Each picture is read by the OCR engine in this browser tab, and the text comes back as a box you can copy and a .txt file you can download. The first run downloads about 4.2 MB of engine and English model, once.

    Pictures per job: up to 10 · Language: English · Layout: A single line · First run: about 4.2 MB

    Telling the recognizer that the picture holds one line removes the guesswork that produces nonsense: there is nothing to segment, so nothing can be rearranged. This is the mode to use for a single value you need exactly right.

    A sign, a menu board, a screenshot of an interface

    How the text is laid out: Sparse text - scattered words

    Plan for 2 pictures

    English text, in this tab

    Each picture is read by the OCR engine in this browser tab, and the text comes back as a box you can copy and a .txt file you can download. The first run downloads about 4.2 MB of engine and English model, once.

    Pictures per job: up to 10 · Language: English · Layout: Sparse text · First run: about 4.2 MB

    Sparse text looks for words wherever they are rather than assuming paragraphs, which is what a sign or a screenshot needs - the words come back in the order they were found, without any attempt at a layout the original never had.

    One paragraph on a label or a slip

    How the text is laid out: One block of text

    Plan for 2 pictures

    English text, in this tab

    Each picture is read by the OCR engine in this browser tab, and the text comes back as a box you can copy and a .txt file you can download. The first run downloads about 4.2 MB of engine and English model, once.

    Pictures per job: up to 10 · Language: English · Layout: One block of text · First run: about 4.2 MB

    A single uniform block is the most accurate mode when the whole picture is one paragraph: there is no layout to analyze, so the recognizer spends everything on the letters. It is the mode for a receipt, a name card or a message screenshot that OCR keeps rearranging.

    Frequently asked questions

    Is my picture uploaded anywhere?

    No. The picture is read by JavaScript in your browser, decoded into pixels there, and handed to the recognition engine in the same tab; the recognizer and its English model are downloaded *to* you from this site, and nothing is sent back. You can check the list of requests your browser makes while a picture is read: every request is same-origin, and none of them carries a picture. There is no endpoint on this site that could accept one.

    Why is the first run slow, and why several megabytes?

    Because a recognizer is a trained model rather than a formula: the recognition engine is 2.8 MB and a language model is another 1.6 to 2.8 MB, and both have to reach your browser before the first character can be read. Only the model you chose is downloaded - English is 2.8 MB, simplified Chinese 1.6 MB - and it happens once. The browser stores the model locally, so the second picture, the second visit and the tenth document are fast - and if you clear your browser data, it downloads once more. The alternative, uploading your document to somebody else’s server, is fast for you and a copy of your document on their disk forever.

    Why is the text wrong in places?

    Because OCR is pattern recognition without understanding. The usual causes, in order: the layout mode is wrong for the picture (try "One block of text" or "A single line"); the picture is small, blurry, dark or at an angle; the text is handwriting, which the model was not trained on; or the font is unusual enough that letters are genuinely ambiguous. Cropping to just the text and enlarging it fixes more cases than anything else. Nothing on this page corrects the output afterwards, so what you see is exactly what the recognizer produced - check it before you trust it.

    Can it read handwriting?

    Mostly no, and the page will not pretend otherwise. The built-in model was trained on printed text, so neat block capitals on a form sometimes come out right, and cursive handwriting almost never does. Photos of whiteboards and handwritten notes are the classic disappointment. If handwriting is the job, a service built on a handwriting-trained model is the right tool - and that means uploading the note to somebody, which is the trade you are making.

    Which languages does it support?

    English and simplified Chinese, and a combined model for a page that mixes the two. Only the models you pick are downloaded, and only when you read a picture: 2.8 MB for English, 1.6 MB for simplified Chinese, 4.5 MB for the pair - which is why the choice is a select box and not a promise about every language on earth. If a picture is full of a language the loaded model was not trained on, the result will be words it thought it saw - the characters it knows, reused. The recognizer itself already handles more than a hundred languages, so a third one would be a matter of shipping another model, not of changing the tool.

    Can I use it on a PDF?

    Not directly: a PDF is a document format rather than a picture, and this tool reads pixels. The usual route is to turn the page into an image first - the PDF tools on this site open and rasterise documents, and a screenshot of a page works too - and then read that image here. A PDF that already contains a text layer does not need OCR at all: copying the text out of it is what pdf-to-word does, exactly, without guessing.

    Does it keep the layout, the columns and the tables?

    No: what comes back is text and line breaks, in the order the engine read it. Columns are usually read one block at a time in the right order, but tables come out as lines of words with the spacing flattened, and a form loses its boxes. The words are the point here; if you need a spreadsheet out of a table, the table has to be rebuilt by hand or by a tool built for that specific job.

    What OCR engine does this page use, and why is it free?

    The engine this page uses began at Hewlett-Packard in the mid-1980s, was released as open source in 2005 and was developed by Google from 2006 - it is permissively licensed, and it is what many libraries, archives and government projects use to read their scans. The same recognizer is packaged to run inside a browser tab, so no separate program is installed. Nothing about the recognition is reimplemented or approximated on this page: it is the real recognizer, in your browser.

    Assumptions and sources

    • Text recognition runs on your device with English and simplified Chinese models, so the picture never leaves the tab.
    • Handwriting, skew, low contrast and small type are not promised to work, and the panel prints the recognizer's own confidence instead of a guarantee; up to 10 pictures per job.
    • Pictures and recognized text stay in your browser; nothing is uploaded.

    Last reviewed 2026-10-30. Runs locally on your device; keep backups; no financial advice applies. Read the full disclaimer.

    Where a figure on this page comes from an official agency — HUD, IRS, FICO or a state body — the site keeps a dated snapshot of the source page in its sources library, and a scheduled job re-checks that snapshot, so the number can be traced back to the document it came from.