Image to text
Choose one JPEG/PNG/WebP image, load eng / chi_sim on demand, correct EXIF orientation and manual rotation, then recognize; edit, copy or download the result as UTF-8 TXT.
Inputs and parameters
file— Image filesample— Built-in demo samplelanguage— Recognition languageexif— EXIF orientation (1–8)rotation— Manual rotation
Real example
Built-in demo sample "mixed Chinese/English"; language eng+chi_sim; EXIF=6 (clockwise 90°) plus manual rotation 270°.
→ Order No. A-2026
订单状态:Paid
Total 42.00 USD / 合计 42 美元
(demo=true; flagged "recognition may contain errors — proofread"; possible errors include No./N0. confusion and missing mixed-script spaces; UTF-8 TXT keeps line breaks)
Limits and failure handling
Real Tesseract.js / WASM / worker / traineddata are neither bundled nor tested this round; uploaded-image recognition reports unavailable, and only built-in samples return deterministic results explicitly marked demo. Recognition may contain errors with no absolute guarantee; clear English, Simplified Chinese and mixed samples each list plausible errors. Resources must be self-hosted or come from a stable configured source. Docs pages load no model; images are never uploaded and text is never logged. 390/768/1440 widths and real-device Safari were not tested.
FAQ
Which files are supported?
One JPEG / PNG / WebP image, default 10 MiB / 12 MP; PDF OCR and handwriting guarantees are out of scope at launch.
When is traineddata downloaded?
Only when a selected language is missing from cache; completed worker reuse triggers no download. Real traineddata was neither downloaded nor tested this round.
Is there a progress percentage?
No. Only validate / load-language / recognize / complete phase names are shown; no end-to-end percentage is fabricated.
Will re-recognition lose my edits?
It would overwrite, so a warning is shown first; without confirmation the overwrite is refused — copy your text or confirm.
Does cancel really stop CPU work?
The state machine checks AbortSignal between slices; cancellation moves the worker to terminated with CPU inactive, requiring reinitialization next run.