Screen Text Extractor | Portfolio Project | Anuradha Herath
Featured Project
Screen Text Extractor
A privacy-first browser extension and landing platform for instant client-side OCR text extraction from images, video frames, PDFs, and locked web pages without sending data to server backends.
About this Project
Background & Goals
Standard web browsing frequently presents text trapped inside images, video frames, protected PDFs, canvas elements, or locked web layouts. Screen Text Extractor was designed to provide users with a fast, seamless, and 100% private client-side text extraction solution directly in the browser using Manifest V3 and Web Workers.
Key Features & User Flows
Interactive Screen Selection: Click "Select Area" or press Alt + Shift + E (Option + Shift + E on Mac) to drag and highlight any area on screen.
100% Offline & Private OCR: Powered by Tesseract.js running in offscreen documents and web workers—zero server roundtrips or privacy exposure.
Smart Pre-processing & Upscaling: Automatically scales up small image selections and applies dynamic brightness/contrast adjustments to boost OCR recognition accuracy on low-res text.
Multi-language & History Management: Recognizes multiple languages and keeps a local history log for quick copying and text file downloads.
Modern Showcase Landing Page: A fast Next.js 16 landing web app featuring interactive demo flows, comparison matrices, support guides, and privacy disclosures.
Architecture & Design Decisions
Extension Core: Built on Chrome Manifest V3 using background service workers, content script overlays, and HTML5 Offscreen Documents for executing client-side Tesseract.js processing cleanly without main-thread blocking.
Web Ecosystem: Built with Next.js 16 (App Router), React 19, Tailwind CSS v4, Framer Motion for high-impact micro-animations, and Lucide React icons.
Decoupled Privacy First: No external APIs or third-party tracking scripts are utilized, ensuring strict compliance with browser store privacy mandates.
Challenges Solved
Manifest V3 Worker Restrictions: Overcame MV3 constraints (which restrict DOM access in background scripts) by offloading image canvas manipulation and Tesseract.js engine initialization into offscreen contexts.
Small Text Recognition: Implemented real-time image preprocessing (contrast enhancement, adaptive scaling, noise reduction) prior to OCR execution to ensure accurate extraction of low-DPI or micro text.