How this works: this page loads the open-source Tesseract OCR engine compiled to WebAssembly and runs it directly in your browser tab. Your image file is read locally by JavaScript and is never sent to any server - you can disconnect your internet after the page and OCR engine have loaded and it will still work.
Troubleshooting
Extracted text has garbled characters or wrong words
The OCR engine needs to know which language it's reading. Pick the matching language from the dropdown before running — English is selected by default, but this page also supports Spanish, French, German, Portuguese, Italian, Dutch, Russian, Chinese (Simplified), Japanese, Arabic, and Hindi.
OCR seems stuck or the first run is very slow
The first time you run OCR on a page load, your browser downloads the Tesseract WebAssembly engine and the selected language's trained data (a few megabytes). That only happens once per page load — after that, recognition itself is fast. A slow connection will make that first download take longer.
The "Extract Text" button stays disabled after I choose a file
Confirm the file is actually a JPG, PNG, WEBP, or BMP image. A HEIC photo straight off an iPhone won't load here directly — convert it with the HEIC to JPG converter first, then run OCR on the result.
Prefer the command line?
The same open-source engine this page uses (Tesseract) is also a standalone CLI tool:
Install with brew install tesseract (macOS), apt install tesseract-ocr (Debian/Ubuntu), or from tesseract-ocr/tesseract on Windows.