Skip to content

Web Workers Image Processing

A browser tab that freezes mid-batch gives you no progress bar, no cancel button, and no way to queue the next job. Web workers image processing fixes that by moving pixel-heavy math off the main thread so the page keeps responding while images resize or convert.

Bulk Image Downloader From URL List uses Web Workers for Canvas-based resize and convert steps, and a separate worker for perceptual duplicate scoring.

Step 1: why the main thread stalls

By default, JavaScript in a browser tab runs on one main thread that also handles scrolling, clicks, and repainting the interface. Ask that thread to resize a hundred large JPEGs synchronously and it cannot paint the UI until the work finishes. Small jobs pass unnoticed; bulk image work can lock the tab for minutes.

Step 2: what a Web Worker does

A Web Worker is a background thread the browser runs alongside the main thread. You send it image data and instructions; it computes and posts results back. While the worker runs, the main thread stays free to update progress indicators and accept clicks.

  • Responsiveness — options page controls stay live during processing
  • Parallel image work — per-task resize concurrency processes 1–15 images at once in workers
  • Separate scoring worker — duplicate-finder similarity math runs off-thread too

Step 3: where workers run in the extension

During download, enabled resize or convert steps use Canvas inside background workers (image-worker.js). The perceptual duplicate finder offloads pair scoring to duplicate-scoring-worker.js so large scans do not freeze the Duplicate Finder tab. Downloads themselves use parallel fetch slots (Licensed PRO up to 100; Try PRO capped at 1; Basic download-only at 2)—separate from worker concurrency but both affect how hard your machine works.

Step 4: why responsiveness matters in bulk jobs

A frozen tab hides whether a job is advancing or stuck. With workers handling Canvas math, you can watch status updates, review the next task, or stop a run that is clearly wrong. The total elapsed time may be similar, but a responsive UI lets you steer instead of guessing.

Step 5: workers do not remove hardware limits

Background threads spread work; they do not create free CPU. A thousand-image resize batch still competes for the same cores and memory. Practical guidance:

  • start parallel downloads conservatively (five to ten) and raise gradually
  • enable per-task ZIP for large sets at higher parallel counts
  • remember resize and convert are mutually exclusive per task—workers process whichever mode you enabled

Install the extension when bulk processing should keep the browser usable, not locked.

Inspecting and clearing local work

Local processing leaves files you may need to look at or clear. View Files shows what the task is working with, and clearing uploads removes those local files deliberately rather than leaving them to accumulate. That matters when a batch is large or when a machine is shared.

Clear rather than assume. Because downloads, drafts, and AI files stay on the computer, a finished batch still occupies space until you remove it. If you process with AI on the same pictures, clearing AI data covers local AI batches, library files, and queued AI data, but only for the current Chrome profile.

Continue reading: Image Aspect Ratio Vs Resolution.