Privacy-conscious users and web developers · 9 min read
How browser-local image processing works
How File and Blob APIs, ArrayBuffer parsing, canvas rendering, Web Workers, object URLs, and browser-generated downloads can transform images without an upload endpoint.
Selection grants local file access
A browser page cannot freely read your photo library. It receives File objects only for items you explicitly choose, drop, or paste. The application can read those bytes into an ArrayBuffer in the tab.
Parsing does not require a server
JavaScript can inspect JPEG segments, PNG chunks, and WebP RIFF chunks directly. The parsed findings exist in memory and can be cleared when you remove the files or close the tab.
Cleaning creates a browser-generated Blob
A metadata cleaner can assemble new bytes locally. A redactor can draw into a canvas and encode a fresh Blob. An object URL gives the browser a temporary download target without a server-generated file.
A Web Worker is not a Cloudflare Worker
A browser Web Worker is a background thread on your device. Cloudflare Workers run on Cloudflare infrastructure. Photo Privacy Lab uses the former for batch processing and does not send images to the latter.
Put it into practice
Check the exact photo you plan to share
The scanner works locally and does not add your filename or extracted metadata to an analytics request.
Open the privacy check