Image text recognition (OCR)
Recognize Chinese and English text in photos, screenshots and scans with PaddleOCR in your browser; text comes out in reading order, with each line’s position in JSON. The models (about 30 MB) download on first use.
Process locally
Files stay in this browser session. Closing or clearing releases them.
Choose files
JPG, PNG, WebP, GIF, BMP, TIFF, up to 10
Drop files here, or
Adjust settings
Nothing to set; defaults work
This tool has no settings.
Run
Processes in this browser; cancel at any time
About this tool
Turn the text in photos, screenshots and scans into text you can copy and edit, for example to grab a paragraph from a photo of a book page, copy an address out of a chat screenshot, or reuse the wording of a scanned notice. Chinese and English are recognized, and the text comes out in reading order.
Recognition runs in your browser with PaddleOCR, so the images are never uploaded; the models, about 30 MB, are downloaded the first time you use it. Up to 10 images (20 MB each) can be read per run. Besides plain text, you get a JSON file with the position and confidence of each piece of text.
How to use it
- Choose up to 10 JPG, PNG, WebP, GIF, BMP or TIFF images, or drop them on the page. To try it first, select “Use example”.
- There is nothing to set. Select Run; the first run downloads about 30 MB of models.
- Read the recognized text in the preview of ocr.txt, or open ocr.json for line positions.
- Download either file, or both together as a ZIP.
Formats and limits
- Input
- JPG, PNG, WebP, GIF, BMP, TIFF, up to 10 files
- Output
- Plain text, JSON
- Size limit
- 20 MB per file, 80 MB in total
- Image size limit
- 24 megapixels per image
- Privacy
- Files stay in the current browser session. No file bytes are uploaded.
- Price
- Free, no sign-up
Common questions
Why is some small text missing?
To find text, the image is scaled so its longest side is at most 960 px, and results with a confidence below 0.5 are dropped. Small print in a large photo or a long screenshot can be lost, so crop the image to the part you need first.
Why are two columns mixed into one line?
Lines are formed from text at the same height across the full width of the image, so side-by-side columns are joined line by line. Crop each column into its own image to keep them apart.
Why are there spaces in the recognized Chinese text?
When one line is detected as several separate pieces, the pieces are joined with a space. Remove the spaces after copying if you do not need them.
What is in the JSON file?
For each image, ocr.json lists the lines in reading order; each line has its text and its pieces, with a confidence score and a box of x, y, width and height in pixels of the original image. With several images, ocr.txt also starts each image’s text with its file name.
Are my images uploaded?
No. Only the recognition models are downloaded from this site on first use; the images are read in your browser and stay on your device.
Workflows that use this tool
Related tools
Extract PDF text
Extract the existing text layer with page markers. Scanned pages without a text layer are reported, never guessed.
Regex find and replace
Replace or extract text with a JavaScript regular expression. Runs in an isolated worker with a hard time limit.
Extract audio from video (MP4 to MP3)
Take the sound out of MP4, MOV, MKV or WebM video and convert it to MP3, M4A, OGG, WebM or WAV, or keep the track unchanged in its own container, optionally trimmed. Files are not uploaded.
Base64 to image or file
Turn Base64 or a data: URI back into a file such as an image; the type comes from the content or the URI.
Image or file to Base64
Encode images or any other file as Base64 or as a data: URI to paste into HTML, CSS or JSON.
Colour picker
Pick colours from anywhere on screen (Chrome and Edge) or from an image, and find an image’s main colours.