# Image to Text

> Read Traditional Chinese off a phone photo or receipt in your browser. PaddleOCR PP-OCRv5, about 15–20 MB, nothing uploaded. Handwriting is limited on purpose.

- URL: https://bytescope.dev/en/image-to-text/
- Locale: en · Also: [ja](https://bytescope.dev/ja/image-to-text.md) · [zh-Hant](https://bytescope.dev/zh-Hant/image-to-text.md)
- Runs: Your files never leave your browser — all processing is local.
- Requires: OCR runs in any modern browser (WebGPU where available, WebAssembly otherwise). The optional AI clean-up lane needs Chrome 138+ on desktop with Gemini Nano downloaded.
- Updated: 2026-09-08

## What it does

### English OCR is a red ocean. Chinese on a phone photo is the gap

PaddleOCR.js runs PP-OCRv5 with ONNX Runtime in this tab. Detection and recognition are the official Apache-2.0 pipeline, about 15–20 MB the first time, then cached. Traditional Chinese and thermal receipts are the reason this page exists: Tesseract's Chinese accuracy is the thing people bounce off, and we are not pretending otherwise.

### Drop, paste, or try the sample

The same paste path as Redact Screenshot — a screenshot on the clipboard is enough. The sample button draws a fake receipt so you can see the round-trip before you trust a real one. Output is plain text you can copy or download, plus a simple line list with scores so a weak box does not hide in an average.

### Handwriting and display type will be wrong

That is the model, not a missing checkbox. Printed menus, invoices, and a phone photo of a page of 繁體 are in-distribution. A signature, a neon sign, or a calligraphy scroll is not. The page says so next to the button rather than in a buried FAQ.

### Later, PDF

The 1201 PDF line still needs an OCR fallback for scanned pages. When `/pdf-to-text` ships, it will call this engine rather than a second one. Redact Screenshot is the sibling for when you have read the text and now need to hide it.

## Limits

Does not OCR PDFs or multi-page scans in one go, and does not preserve layout as a document; it extracts text from an image.

## FAQ

### Is the image uploaded?

No. Recognition runs in this tab. Model files are fetched when you press the button; the photo is not part of that request.

### Which languages does it actually read?

The PP-OCRv5 `ch` preset is built for Chinese and still reads embedded English (receipts mix both). It is not a fifty-language pack. If your page is Japanese-only or Latin-only, expect a worse result than a specialist model.

### Why not Tesseract?

Tesseract in the browser is fine for English. On Traditional Chinese from a phone, PP-OCRv5 is the reason to bother shipping a 20 MB model. That is the differentiation, stated plainly.

### Can it read handwriting?

Poorly. Treat a bad handwritten result as the expected outcome, not a bug to file. Printed text is the supported path.

### Will this become the PDF OCR fallback?

That is the plan. `/pdf-to-text` is on the 1201 line; when scanned pages need OCR, they should call this engine instead of growing a second one.

## Related tools

- [Redact Screenshot](https://bytescope.dev/en/redact-screenshot.md) — Black out text on a screenshot before you share it.
- [Remove Background](https://bytescope.dev/en/remove-background.md) — Cut the subject out if the photo is cluttered.
- [Restore Old Photos](https://bytescope.dev/en/photo-restore.md) — Sharpen a faded print before you try to read it.
