Image to Text: How OCR Works

By Udit Agarwal · Updated October 17, 2026

OCR, short for optical character recognition, is software that finds the letters in a picture of text, such as a photo, a screenshot or a scan, and turns them into characters you can copy, search and edit. It cleans up the image, finds the lines and words, then recognises each line with a model trained on large amounts of printed text, helped by data about the language. On a sharp scan of ordinary print it gets nearly every character right, and blur, small type, tilted lines, unusual fonts and handwriting all pull that accuracy down quickly.

What OCR does, and when you do not need it

OCR starts from pixels and ends with plain text. It does not understand what it reads, it rarely keeps formatting such as fonts or colours, and a table usually comes out as lines of text rather than cells.

Not every document needs it. A PDF exported from a word processor already contains its text: try selecting a word, or search with Ctrl+F. If that works, PDF to Text pulls the text out directly, with none of the guesswork. OCR is for pictures of text: photos, screenshots and scanned pages.

How OCR works, step by step

  1. Clean-up. The image is turned to greyscale and its contrast stretched, or it is reduced to pure black and white, so that ink stands apart from paper. Some engines also remove specks and correct slightly tilted lines.
  2. Layout analysis. The engine finds blocks of text, then lines, then words, and decides the reading order. This is where columns, tables and captions go right or wrong.
  3. Recognition. Older engines compared characters one at a time against stored shapes. Modern engines use neural networks that read a whole line at once and output the most likely sequence of characters, which copes far better with touching letters and varied fonts.
  4. Language data. Word lists and statistics about the language help choose between look-alikes such as "rn" and "m", or "0" and "O". Choosing the wrong language removes that help and can garble accented letters.
  5. Output. The result is text, often with a confidence score and the position of every word. Those positions are what let a searchable PDF place invisible text exactly over the printed words.

What affects OCR accuracy

Factor Why it matters What helps
Resolution Letters need enough pixels to show their shapes Scan at 300 dpi; zoom in before taking a screenshot
Contrast and light Shadows, glare and tinted paper blur the line between ink and paper Even light, no flash, dark ink on light paper
Focus and motion Blurred edges merge neighbouring letters Hold steady and let the camera focus
Skew and perspective Tilted or slanted lines confuse line finding and stretch letters Shoot straight on; straighten scans
Fonts Decorative, very thin or tiny type has unusual shapes Expect errors and check by eye
Layout Columns, tables and text over pictures upset the reading order Crop one column or region at a time
Language The model needs the right script and word data Choose the language actually printed
Compression Heavy JPEG compression smears letter edges Read the original, or a PNG screenshot

Resolution is the factor people underestimate. Type is measured in points, and 1 point is 1/72 inch. A 10-point font scanned at 300 dpi gets about 42 pixels per em, its nominal height, so a lowercase x is roughly 20 pixels tall. At 72 dpi the same letter is about 5 pixels tall, which leaves very little to tell an e from a c. The usual advice is 300 dpi for ordinary text and 400 to 600 dpi for print smaller than about 9 points.

Screenshots are usually easier than photos, because the text is perfectly sharp and level with no lighting to fight. Their weakness is size: small interface text on an ordinary monitor may be only a handful of pixels high. Zooming the page in before you take the screenshot gives the recogniser more real detail than any enlargement afterwards. For the same reason, a photo squeezed to 20 KB for an upload form is a poor source; compressing a photo to an exact size explains what that squeezing throws away.

Why handwriting is so much harder

Printed-text OCR relies on letters looking roughly the same every time they appear. Handwriting breaks that: every writer forms letters differently, letters join, the slant and spacing wander, and the same person may write an "a" three ways on one page. Recognising it is a separate field, often called handwritten text recognition, with models trained on handwriting rather than type.

Neat block capitals, one per box on a form, are the easiest case, and joined-up cursive is the hardest. Whatever tool you use, check names, numbers and dates by eye. ArrayKit's OCR tools are built for printed and typed text and read handwriting far less reliably.

Making a scanned PDF searchable

A scanned PDF is a stack of pictures: you can read it, but search finds nothing and copying gives nothing. A searchable PDF keeps each page's image and adds the recognised text as an invisible layer, placed word by word over the printed words. The PDF standard, ISO 32000, has a text rendering mode for exactly this: text that is neither filled nor stroked, so it cannot be seen but can still be selected and searched.

PDF OCR does this in your browser. It draws each page at 144 dpi (faster) or 216 dpi (more accurate), reads it in one language you pick from twelve, and builds a new PDF in which every page is that image with the recognised text laid invisibly over it. It handles up to 30 pages per run and also gives you the plain text to copy or save as a .txt file. Because the pages are redrawn, a scan stored at a higher resolution comes back at the resolution you chose, and links or form fields in the original are not carried over. Use 216 dpi for small print or a poor scan, and straighten tilted pages first with Deskew PDF, since level lines read better.

Privacy: reading documents on your own device

The documents people run through OCR are often private: ID cards, receipts, bank statements, contracts, medical letters. Many online converters upload the image to a server to read it. Recognition on your own device skips that step.

In ArrayKit's Image to Text and PDF OCR, the pictures and pages are read inside the browser tab and are not uploaded. What the page does download is the recogniser and its data for the language you choose, a few megabytes the first time, which your browser keeps for next time. That is why the first image in a new language takes longer to start, and later ones begin straight away.

Read text from an image with ArrayKit

Image to Text (OCR) reads PNG, JPEG, WebP, GIF and BMP images, up to 20 in a batch, one after another. Paste a screenshot with Ctrl+V or Cmd+V anywhere on the page, or use the Paste image button. Choose the language from twelve (English, Spanish, French, German, Portuguese, Italian, Dutch, Hindi, Russian, simplified Chinese, Japanese and Arabic), and add a second language for a page that mixes two.

The Enhance option, on by default, turns the picture grey, stretches its levels so faint text on grey paper becomes dark text on white, and doubles images under 1800 pixels on the long side, which helps small screenshots. Nothing larger than 4200 pixels on the long side is passed to the recogniser. You can keep the line breaks as read, or join the lines into paragraphs, which mends words hyphenated across a line break, keeps list items on their own lines and joins Chinese and Japanese without spaces.

Each result has a confidence figure, coloured green from 85 percent, amber from 60 and red below. It is the recogniser's average certainty, not a guarantee, so check names and numbers anyway. The text boxes are editable, and you can copy one result, copy everything, or save it all as one .txt file.

Two limits are worth knowing. Handwriting is read far less reliably than print. And each picture is read as a single block of text, so two columns side by side come out interleaved line by line; crop each column with the Image Cropper and read them separately. iPhone photos saved as HEIC need converting to JPG first, as HEIC files, explained describes.

Frequently asked questions

How does OCR work? It cleans up the image, finds the lines and words, and recognises each line with a model trained on printed text, using language data to pick likely words. The output is text, usually with a confidence score and the position of each word.

How accurate is OCR? On a sharp, level scan of ordinary print, nearly every character comes out right. Accuracy drops with low resolution, blur, shadows, skew, decorative fonts and complex layouts, and drops sharply with handwriting. Always check names, numbers and dates.

Can OCR read handwriting? Ordinary OCR reads neat block capitals reasonably well and joined-up writing poorly. Handwriting needs models trained on handwriting, and even their results need checking.

What resolution should I scan at for OCR? 300 dpi suits ordinary text. Go to 400 to 600 dpi for print smaller than about 9 points, and keep the scan sharp and level, because blur and tilt hurt accuracy too.

Why does OCR confuse 0 and O, or 1, l and I? Those characters look almost identical in many fonts, so the recogniser leans on context from the surrounding word and the language data. Codes, serial numbers and reference numbers give it no such context, so check them character by character.

Is it safe to use an online image to text converter? It depends on where the recognition happens. Many services upload your image to read it. ArrayKit's Image to Text reads it in your browser, so the image stays on your device.

How do I make a scanned PDF searchable? Run it through OCR that writes an invisible text layer, such as PDF OCR. The page still shows the scanned image, but search, selection and copying now work.

Keep going

Фото в текст (OCR)

More guides

  • Compressing a Photo to an Exact File Size — How to compress an image to 50 KB or reduce a photo to 20 KB for job, exam and government forms: what sets file size, KB vs KiB, and when to resize first.
  • HEIC Files, Explained — What a HEIC file is, why iPhones save photos as HEIC, how to open HEIC on Windows, and how to convert HEIC to JPG while keeping quality and dropping GPS data.
  • PNG vs JPG vs WebP, Explained — PNG vs JPG vs WebP: lossy and lossless compression, transparency, file sizes for the same photo, and the best image format for the web, photos and logos.
  • Image Size, Resolution and DPI, Explained — What image dimensions, DPI and file size mean, how to pick the right pixel size for web and print, and why resizing is not the same as compressing or cropping.
  • Base64 Encoding, Explained — Base64 explained: how it turns binary into text, the alphabet and padding, the URL-safe variant, size overhead, use cases, and why it isn't encryption.
  • Linux File Permissions and chmod, Explained — What chmod 755, 644 and 777 mean: owner, group and others, read, write and execute, octal and symbolic modes, umask, setuid, setgid and the sticky bit.

All Images tools · All guides