PNG to Text

Screenshots, error dialogs, chat captures. PNG keeps every pixel exactly as the screen drew it, which is the friendliest thing an image can do for a recogniser.

Drop a file
Drop an image or PDF to extract its text
JPEG, PNG, WebP, AVIF, HEIC, BMP, GIF, TIFF, PDF · English (more languages coming) · processed in your browser
PDF pages are rendered and read as images, up to 20 pages per run

PNG to Text — Free, Fast & Private

Almost every PNG with words in it started life as a screen rather than a scene. Operating systems save screen captures as PNG by default, design tools export mockups as PNG, and anyone posting a bug report, a chat thread, or a receipt into a ticket is almost certainly attaching one. That origin matters, because it makes PNG the single best-behaved input a character recogniser can be handed. There is no lens, no lighting, no motion blur and no perspective. The glyphs sitting in the file are the exact glyphs a font renderer drew, at whatever resolution your display runs. Feed one in above and the engine — Tesseract 7, built to WebAssembly and served from this site rather than a third party — reads it inside your browser tab. The first visit pulls down the engine along with an English model of roughly 1.9 MB; from then on the browser cache serves both and the tool keeps working with the network switched off.

Lossless storage is why PNG reads cleanly

PNG compresses without discarding anything. Decode a PNG and you get back the identical pixel values that were encoded, byte for byte, which is a fundamentally different arrangement from the lossy formats that dominate photography. For text, that guarantee is worth a great deal. Screen type is rendered with anti-aliasing: the edge of every stroke is a short ramp of intermediate grey values that fools your eye into seeing a smooth curve. A recogniser leans on those ramps too. It thresholds the picture into ink and background, and a clean, consistent ramp gives it an unambiguous place to draw the line. Lossy formats mangle exactly that region, smearing faint halos around each stem where the ramp used to be. PNG leaves it untouched. The same screenshot saved once as PNG and once at middling lossy quality will often produce visibly different transcriptions, and the PNG is the one that comes out right.

There is a second, quieter advantage. PNG stores colour at full resolution rather than at half, so light-grey secondary text on a white panel, or a coloured link inside a paragraph, keeps its edge definition instead of bleeding. Interface design is full of low-contrast text like that, and it is precisely the text that degrades first everywhere else.

Error dialogs and terminal output

The most useful thing this does all week is turn a screenshotted error into a search query. Someone drops a PNG of a crash dialog into a ticket, or a colleague photographs their terminal because copying out of a remote session was awkward, and the exact string you need to look up is trapped inside an image. Stack traces and console output are close to ideal for recognition: monospaced faces have generous, evenly spaced letterforms, terminals run high contrast by default, and the text is rendered rather than photographed. What deserves care is punctuation. Paths, package names, and exception messages are dense with brackets, slashes, colons, and underscores, and those are the characters where a recogniser is least confident. Read the extracted string once before you paste it into a search box or, worse, into a shell.

Chat logs, receipts, and order confirmations

The other big category is evidence. A conversation captured before someone could delete it. An order confirmation screen that never arrived by email. A booking reference, a transfer receipt, a delivery slip shown only inside an app that offers no export. People screenshot these because it is the only way to keep them, then discover the record is unsearchable and impossible to quote. Recognition converts the capture into something you can paste into a note, a claim form, or a spreadsheet. It is also the category where running everything locally stops being an abstract preference: a payment receipt or a private thread is not a file you want sitting in an unknown company's processing queue, and here there is no queue, because the analysis happens on the machine in front of you.

When a PNG still reads badly

The format removes most of the ways an image can be ruined, but not all of them. The commonest failure is scale. If the capture was taken on a low-density display, or the interface was zoomed out, body text may be only eight or nine pixels tall, and below roughly that size there is genuinely not enough shape left to identify a character. Enlarging the PNG afterwards does not help, because upscaling adds pixels without adding information. The fix is upstream: zoom the page or increase the application font size, then capture again. The second failure is a PNG that is not really a PNG any more. Screenshots forwarded through chat apps or pasted into some web tools get converted to a lossy format en route and then saved back out with a .png extension, arriving with all the artefacts the format was supposed to prevent. Very heavy visual styling causes trouble too: condensed display faces, letter-spaced headings, text laid over a photographic hero image, or a gradient running underneath a caption. And a full-page capture that is fifteen thousand pixels tall will work, but it is a lot of picture to grind through on your own processor, so expect it to take a while.

Layout is flattened, and the model speaks English

What comes back is plain text plus a confidence figure, and plain text has consequences for interface captures specifically. A screenshot of a settings panel arrives as labels and values run together in reading order. A captured table loses its columns. A two-pane layout interleaves. Nothing is colour-coded, nothing is bold, and nothing preserves the spatial relationship that made the original readable at a glance, so a dense dashboard capture will need reformatting by hand once the words are out. Two other limits are worth stating rather than burying. The engine reads printed and rendered characters, so it is excellent on interface type and poor on handwriting; and version one ships the English model only, with more languages coming. A German error message or a Japanese app screenshot will still return something, which is exactly the problem — you would have no signal that it was guessing beyond a low confidence figure. And PDFs are not an input the tool accepts today; it works on pictures.

Before you share the capture onward

Screenshots leak. A capture taken to show one dialog routinely includes a browser tab bar with a private URL, a sidebar of contact names, a notification banner, or an email address in the corner. Once the text you actually needed has been extracted, take thirty seconds over the picture itself: pixelate the regions that were never meant to travel, or blur them if a softer look suits the document better. If the file is going into a ticket or an email with an attachment limit, compressing the PNG costs nothing now that its legibility no longer has to survive.

How it works

  1. Capture at full resolution: Take the screenshot without zooming the interface out. Eight-pixel-tall type has too little shape left to identify, and enlarging afterwards adds no detail.
  2. Drop the PNG into the tool: Drag the file in above. It is decoded in the tab you are looking at, so no copy of the capture is transmitted anywhere.
  3. Wait out the one-time download: A first visit fetches the recognition engine and a roughly 1.9 MB English model from this site. Both are cached, so subsequent captures start instantly.
  4. Check punctuation-heavy strings: Brackets, slashes, colons, and underscores in paths and error messages are the least reliable characters. Reread them before pasting anywhere consequential.
  5. Mask the picture before sharing it: A capture taken for one dialog often carries URLs, names, or notifications at the edges. Cover those once you have what you needed.

Frequently asked questions

Why do PNG screenshots usually read better than photographs?
Because there is no camera in the chain. A screenshot records exactly what the font renderer drew, at perfect focus, perfect alignment, and even lighting, and PNG stores those pixels without discarding any of them. Every source of error a photograph introduces simply does not exist.
The text in my PNG is tiny and the result is garbled. What can I do?
Take the capture again with the interface enlarged. Zoom the page in the browser, raise the application font size, or use a higher-resolution display, then screenshot that. Scaling the existing PNG up will not work, because upscaling multiplies pixels without recovering the detail that was never recorded.
Does a transparent background in a PNG cause problems?
No. Transparent areas are flattened onto white before the text is read, which is what the engine expects — dark ink on a light field. That matters more than it sounds: a fresh canvas is transparent black, so without that step a dark-text logo exported on a transparent background would reach the engine as black on black and read as nothing at all. Exported assets and UI files are handled the same as any opaque screenshot.
Can it keep the columns of a table I screenshotted?
No. The output is plain text in reading order, so a table arrives as a stream of values with the grid structure gone. You get every cell, but you have to rebuild the rows yourself. That is a property of plain-text recognition rather than of this tool specifically.
Will it handle a full-page screenshot that is very tall?
Yes, subject to the 100 MB file limit, but be patient with it. All the work happens on your own processor, and a fifteen-thousand-pixel-tall capture is simply a great deal of image to analyse. If you only need one section, cropping to it first is much faster.
Is the screenshot uploaded while it is read?
It is not. The engine runs as WebAssembly inside your browser, so the file is decoded and analysed on your own device. Once the model has been cached by a first visit, you can go offline and the tool still works, which is about as concrete as the proof gets.
Does it work on screenshots of code?
Yes, and monospaced code is one of the better inputs: even spacing, high contrast, rendered rather than photographed. Treat indentation and punctuation with suspicion, though. Leading whitespace is not reliably preserved, and a misread bracket in a snippet you are about to run is a worse outcome than a misread word in a sentence.
Can I feed it a PDF instead of a PNG?
Not at the moment. The tool takes images: JPEG, PNG, WebP, AVIF, HEIC, BMP, GIF, and TIFF. If you have a PDF, converting its pages to images first is the route, and many PDFs already contain a selectable text layer that makes recognition unnecessary anyway.

All Image Tools

Solutions by use case