OCR Image Reader Simple powerful OCR without server iteration
Support Development
PayPal ● 
Bitcoin Address: 1sM2BrTH8BRgt3quiASK8TmYSafutNvDo
Dogecoin Address: DFdSGpGMZ2EZVkjyqNrYCEysK92DFPonx4
Your Input Matters
The "OCR Image Reader" extension is designed to simplify optical character recognition (OCR) processing within your browser. After installation, the extension adds a new button to the toolbar area of your browser. When you press this button, the current window switches to the selection mode, allowing you to select a region on the current page. The extension captures the image of the area, and the internal engine, Tesseract.js, extracts the content for you. This engine is a JavaScript-based OCR that supports over 100 languages. When performing a new job, the extension displays the progress of the OCR extraction in a popup window. If you have multiple jobs, you will get equivalent floating windows. It's worth noting that the extension fetches the appropriate language database from the server once. In future usage, the cached database is used.



  1. What is the "OCR - Image Reader" add-on and how can I use it?

    This extension provides users with a simple yet powerful in-page OCR extension, eliminating the need for a native one. It is a user-friendly OCR tool, allowing easy text extraction of images or text content that cannot be selected/copied. To start using it, click the toolbar button to activate the selection mode, select the desired area of interest, and release the mouse pointer. The extension then captures the screen area and sends it to the OCR engine within a page's frame element. It displays the progress of the process in a popup window, including fetching the language training database from the server and extracting the text content from the selected area. Both of these processes feature a progress bar. The database access takes some time during the first run but improves for all subsequent calls as it is cached by the browser.

  2. recommended "Password Lock for WhatsApp Web" extension for Chrome, Edge, and Firefox browsers

    This extension adds a password protection feature to your WhatsApp Web. It requires the user to enter a password to access the interface, and can also automatically lock the interface when the computer is inactive for extra security. Read more here.

  3. What's new in this version?

    Please check the Logs section.

  4. Does this extension uses an online service for dong the text recognition?

    No, the process of extracting text content from an image occurs locally. However, it's worth noting that this extension obtains the training data from a remote server since the database is approximately 30 megabytes and cannot be included in the extension. Apart from fetching the database, this extension does not interact with any remote services.

  5. Is it possible to send a large image to the OCR engine using this extension?

    It is possible, in theory, to send large images to the OCR engine. However, it may take a considerable amount of time for the extension to process the image, and it could require excessive CPU resources to extract the content. I recommend using the area selection tool to only select the necessary area instead of sending a large image with significant amounts of space around it.

  6. What is the OCR engine of this extension?

    This extension uses the well-known Tesseract.js OCR engine, which features online language training resources to maintain the most up-to-date database.

    Tesseract.js is an open-source OCR (optical character recognition) engine based on Tesseract project maintained by Google. Tesseract.js is written purely in JavaScript and runs in a browser or a Node.js environment.

  7. Could you provide instructions for setting up a local testing server to use the OCR extension on local images? When I try to use this extension on these pages, I get the "Cannot access contents of the page" error.

    If you are attempting to use this extension on local images, you may encounter a notification stating “Cannot access contents of the page. Extension manifest must request permission to access the respective host.” Unfortunately, modern browsers do not allow extensions to access the “FILE” scheme. To perform OCR, create a local server and access images using the “" address instead. Having a local server to access your pages is similar to accessing web content and will enable the extension to function properly.

    To set up a local testing server, you can refer to the documentation on “How do you set up a local testing server”. This will guide you through the steps required for creating a local server and accessing your images using the HTTP scheme, enabling you to use your browser extensions on the local resources.

  8. Is it possible for the OCR extension to detect the language of an image and use the appropriate training database? I often work with documents in various languages, and such a feature would be beneficial.

    The extension allows language auto-detection starting from version 0.2.3. It performs OCR on the image in three different languages (English, Arabic, and Japanese) when this mode is activated. Then, it utilizes the Compact Language Detector (CLD) algorithm to determine the language of the extracted text. Once it identifies the language successfully, the extension uses the corresponding OCR engine to perform the actual OCR. Keep in mind that the first detection might take some time since the extension has to fetch the training database for several languages.

  9. Is it possible to post the OCR result to a server?

    As of version 0.2.4, you can define a custom server to post the result. A use case is to copy the data to a local text file without a manual copy and paste process. To configure the server, use Shift + click on the "Post Result" button. General Format:

    Post Example:
    Put Example:
    Get Example:
    Open in a Browser Tab Example:
    The "OPEN" command can be used to for instance search the extracted content in a new browser tab or send the content to a website that needs user interaction. The &content; keyword on the URL part will be replaced with the actual result and it is encoded (encodeURIComponent), but the &content; on the body section is not altered. You can have one instance of the &content; keyword in the URL and one instance in the body part. You can write the server code in any language such as Python, PHP, or JavaScript. Here you can find a sample code written in JavaScipt. This code is meant for NodeJS. Alter the code to fit your needs:
    const http = require('http');
    const server = http.createServer(function(req, res) { // 2 - creating server
      // res.setHeader('Access-Control-Allow-Origin', '*');
      console.log('Request URL: ' + req.url);
      console.log('Request method: ' + req.method);
      if (req.method === 'GET') {
      else {
        req.on('data', chunk => {
          console.log('Chunk:', chunk);
        req.on('end', () => {
    Supported keywords:

    • &content; OCR result
    • &href; Document URL

  10. [Version 0.2.7] Is it possible to close all result panels at once?

    Yes, it is possible to close all result panels together by using the Shift key while pressing the "Close" button. This action closes all open floating windows on the current page, saving you time and effort if you have many panels open.

  11. Can I translate the extracted text from an image using this extension?

    You can use the "Post Result" button to send the extracted text to a translator service. For instance, to send the text to Google Translate and translate any language into English use:

    To send the text to DeepL and translate in English, use

  12. Is it possible that my text highlighter or text-to-speech extensions have access to the content extracted by this extension?

    The interface of each extension is isolated, so it is not possible for other extensions to directly access the extracted content of this extension. However, you can use the "post" command to open the extracted content in a new web page that can be accessed by other extensions.


  13. How do I delete the cached training database used by this extension?

    Starting from version 0.3.2, you can delete the cached training database by pressing Ctrl+Click or Command+Click on the "close" button of an OCR result box. This action removes all the cached training storage, and the extension will fetch a fresh copy on the next detection request.

Matched Content



Please keep reviews clean, avoid improper language, and do not post any personal information. Also, please consider sharing your valuable input on the official store.

What's new in this version

Change Logs:
    Last 10 commits on GitHub
    Hover over a node to see more details

    Need help?

    If you have questions about the extension, or ideas on how to improve it, please post them on the  support site. Don't forget to search through the bug reports first as most likely your question/bug report has already been reported or there is a workaround posted for it.

    Open IssuesIssuesForks

    Permissions are explained

    storageto keep the internal preferences
    activeTabto inject area select script into the active page after a user action
    notificationsto display possible warnings during the OCR process

    Recent Blog Posts on WebExtension.ORG