Source image

Drag & drop an image here, or browse

PNG, JPG, JPEG or WEBP · up to 10MB

Extracted text

Extracted text will appear here

Upload an image, then click Extract Text. Recognition runs in your browser.

Words: 0

How image-to-text works here

Optical character recognition turns the shapes in a picture back into characters a computer can read. It is pattern matching over pixels, not comprehension: the engine finds regions that look like text lines, segments them into glyphs, and picks the most likely character for each shape given the ones around it.

This tool runs that process entirely in your browser. The image is never uploaded, never stored, and never sent to a server - which is why the first extraction takes a few seconds longer than you might expect. The recognition engine has to download before it can start. After that it is cached, and later images process immediately.

The practical consequence of running locally is privacy. Screenshots of private messages, photographed pages of a book you borrowed, a scan of a document with your address on it - none of it leaves your machine, because there is nowhere for it to go.

Getting a usable result

OCR accuracy depends almost entirely on the input. The same page photographed two different ways can give you clean text or unusable noise, and the difference is usually one of these:

  • Resolution. Text needs roughly 25 pixels of height per line to be recognised reliably. A full-page screenshot at phone resolution often falls below that. Zoom in and capture less of the page rather than more of it.
  • Contrast. Dark text on a light background is what the engine expects. Highlighter, coloured paper, and dark-mode screenshots all reduce accuracy - inverting a dark-mode screenshot before uploading usually helps.
  • Straightness. A photograph taken at an angle skews the lines, and skewed lines break the segmentation step before character recognition even begins. Photograph from directly above, or crop and straighten first.
  • Focus and shadow. A shadow falling across the middle of a page splits it into two brightness regions and the engine will usually lose one of them. Diffuse light beats bright light.

Where it will let you down

Handwriting is the honest limit. This engine is trained on printed type, and cursive or hurried handwriting will not come back reliably no matter how good the photograph is. Neat block capitals sometimes work; running handwriting generally does not.

Multi-column layouts are the other common surprise. A scanned journal article in two columns is read as one wide column unless the layout analysis separates them, which produces text that alternates between columns mid-sentence. Cropping one column at a time is tedious but it works.

Tables, equations, and text set over images are similarly unreliable - not because the characters are hard, but because the spatial relationships that give them meaning are lost when the output is a flat string.

Whatever comes out, read it before you use it. OCR errors are quiet: it will confidently give you "rn" where the page said "m", or "0" for "O", and nothing in the output marks where it was unsure.

Common questions

Is my image uploaded to a server?

No. Recognition runs entirely in your browser using a local engine. The image never leaves your device, which is also why the first extraction takes a few seconds while that engine downloads.

Which image formats work?

PNG, JPG, and WebP. For screenshots, PNG preserves sharp character edges better than JPG, whose compression artifacts sit exactly where OCR needs clean boundaries.

Can it read handwriting?

Generally no. The engine is trained on printed text. Neat block capitals sometimes come through, but cursive and everyday handwriting will not extract reliably.

Why is the text in the wrong order?

Almost always a multi-column layout. The engine reads across the full width of the image, so a two-column page comes back alternating between columns. Crop to one column at a time and run each separately.

Why are there odd line breaks in the output?

OCR returns text line by line as it appears in the image, so a paragraph that wrapped across six printed lines comes back as six lines. Paste the result somewhere that reflows text, or join the lines manually before using it.

Does it work on PDFs?

Not directly - this tool takes images. For a PDF, use the PDF to Word converter, which extracts text that is already embedded in the file. Use OCR only when the PDF is a scan, in which case export the page as an image first.

Related tools