Skip to main content
PulsarKit

Copy text from a screenshot

Read the printed text out of a photo, screenshot or scan and download it as a .txt file, or as JSON with the position and confidence of every block.

Drop your files here

.jpg, .jpeg, .png, .webp, .bmp, .gif, .avif · up to 100 MB

More settings

How to Extract Text

  1. 1

    Add your image

    JPG, PNG, WebP, BMP, GIF or AVIF, up to 20 files. The format is read from the file itself, so a wrong extension still lands in the right decoder.

  2. 2

    Pick the language of the text

    One language is enough for most scans; add a second or third when a page genuinely mixes them. Each extra language costs a download and a little accuracy.

  3. 3

    Click Extract and download the .txt

    You get the recognised text, the character count and the average confidence. Switch the output to JSON when you need coordinates as well.

Set up for buttons and menus

The page opens with English under “Language of the text” and, inside “More settings”, “Scattered text” under “Page layout”. That mode hunts for words anywhere in the picture and writes each piece on its own line. In our check on October 21, 2026, a 1280 × 800 screenshot of a PulsarKit tool page held 103 words. Scattered text found 101 of them. “Detect automatically” found 96, because it glued the buttons Split PDF and PDF to Word into single words. On the dark theme of the same page the result flipped: 98 against 101. Both kept the words in screen order.

When to switch to Detect automatically

On a screenshot of a blog post, both modes found 317 of the 321 words, in the right order. Scattered text, though, put a blank line after every line, while “Detect automatically” kept the lines of each paragraph together. On a grid of four cards per row, Scattered text read straight across and mixed lines from four descriptions. The other mode kept each card's text in one piece. On a tool screen with two photos, Scattered text returned 96 stray words, mostly from the photos; “Detect automatically” returned 10. So Scattered text suits a plain screen of menus and buttons. For paragraphs, card grids and anything with a photo, switch, or cut the photo out first in Crop Image.

What you get, and how fast

Press “Extract Text” and the text arrives as a .txt file named after the screenshot: our 80 kB screenshot gave 652 bytes of text. The page shows the file, not the text. To read it on screen, press Case Converter in the row of next steps: the text opens in its “Source” pane. The first run in a browser also downloads the recognition engine and the English data, about 4 MB in our check. In Chrome on a Mac that first screenshot took 1.2 to 1.4 seconds, the download included. After that, each screenshot took between 0.6 and 2.1 seconds. Two screenshots at once came back as pulsarkit-batch.zip with one .txt each.

Languages, files and privacy

Eight languages are on the list: English, Russian, German, French, Spanish, Chinese (Simplified), Arabic and Japanese. “Second language” adds one more for a mixed screenshot, up to three in all; other languages are not on the list. PNG, JPG, WebP, BMP, GIF and AVIF go in up to 100 MB each, 20 files at a time. A crop under 1000 pixels on its longer side still runs, with a warning that small letters may be misread. The screenshot is read inside the browser tab and never leaves the device; only the engine and the language data are downloaded. A scanned PDF goes to OCR PDF instead, which currently reads English only.

Neither the image nor the text is uploaded

The recognition engine and the language data are downloaded once and then cached by your browser, and everything after that runs locally: your image is decoded in the tab, recognised in the tab, and the text file is built in the tab. Nothing about the content is sent anywhere, which matters when the thing you are reading is a contract, a payslip or an ID.

Frequently asked questions

Which languages are supported?

English, Russian, German, French, Spanish, Simplified Chinese, Arabic and Japanese. You can combine up to three at once for genuinely mixed pages, though a single correct language is almost always more accurate than two.

Is my image sent to a server?

No. The OCR engine is WebAssembly running inside your browser. The only network traffic is the one-time download of the engine and of the language data you picked; the picture and the recognised text stay on your device.

Why is the first run so much slower?

Because the first run downloads the engine, around 3 MB, plus the data for your language, between 0.7 and 3 MB depending on which one. Your browser caches both, so the second run starts recognising immediately.

Does it read handwriting?

Not reliably. The models here are trained on printed type, and handwriting comes back either wrong or below the confidence threshold. Very neat block capitals sometimes work; ordinary cursive does not. Treat any handwritten result as a draft to be checked, never as a transcription.

What do I do when no text is found?

First turn on the preprocess option and try again; it fixes most uneven-lighting cases. If that does not help, the usual cause is resolution: rescan or re-photograph so that the letters are at least twenty pixels tall. Cropping down to just the text and picking the matching language also help more than people expect.

What resolution do I need for a good result?

Aim for text roughly 20 to 40 pixels tall, which is about 300 DPI for a normal document scan. Below that, letters start merging and accuracy falls off sharply. Above it, you mostly pay in time: an image is not more readable for being 10000 pixels wide, and anything over 12000 pixels on a side is scaled down before recognition anyway.

Can I get the position of each word?

You get the position of each block, which is the unit the engine reports: its text, its confidence and its bounding box in pixels. Choose the JSON output instead of plain text and the download is that array rather than a flat file.

Does it work on a phone?

Yes, with two caveats. The first run has to download several megabytes over whatever connection you are on, and recognition on a phone takes roughly three times as long as on a laptop, so a full-page scan can take half a minute. Everything still runs locally.

Related tools