Loading
Loading
Extract
Optical character recognition normally means sending your document to somebody else's server. This tool runs the recognition engine inside your browser instead, so a contract, a payslip or a page of notes is read on your own machine and nothing is transmitted. The first run downloads the recognition model, after which it is cached.
This tool accepts JPG, PNG, WebP and BMP files. Everything is decoded by your own browser, so the formats available depend on what your browser can open - which for HEIC in particular varies between Safari and other browsers.
No. The recognition engine itself is downloaded to your browser and then runs there, which is the reverse of how most OCR services work. Your image is read by code executing on your own device, so a confidential document never travels over the network at all.
Because the recognition engine and the language model you chose have to be downloaded before anything can be read - the engine is a few megabytes and each model is between half a megabyte and two. Your browser caches them, so the second and later runs start almost immediately, and switching language downloads only that one model. That download is the price of not sending your document away.
Good on clean, level, reasonably high-resolution text, and much weaker on handwriting, heavy compression, unusual fonts, low contrast or photographs taken at an angle. Always read the output before you rely on it. The tool shows a confidence figure and will tell you when the result looks unreliable.
Seven: English, French, Spanish, German, Portuguese, Italian and Russian. Each is a separate model that is actually shipped and actually loaded when you pick it - not a label on the same engine. This matters more than it sounds, because a model can only produce characters that exist in its own alphabet: the English model contains exactly one accented letter, e-acute, so reading a French page with it returns words spelled with the nearest shapes English owns, and a high confidence score for having done so. Choosing the language is therefore the difference between your text and an approximation of it. The tool states any gap in the model you have chosen - the Spanish one cannot write u-diaeresis, for instance - and every one of those claims is measured from the model file rather than asserted.
It preserves line and paragraph breaks, which is enough for prose, notes and code, and it will not invent headings or emphasis because nothing in the result says how large or bold anything was. Tables are the one exception, and they are handled carefully: when the words on the page line up into columns, the tool offers a grid, shows it to you first, and tells you what percentage of the lines actually fitted it. That is an inference from where the words sit rather than a table the engine recognised, and it is presented that way - a spreadsheet with values under the wrong headings looks exactly as convincing as a correct one, which is why you are shown the grid before you can export it.
Looking for something else? Browse all ImageUtility tools.