MetaRinse guide

How MetaRinse processes images locally

MetaRinse uses browser File, image decoding, canvas, and object URL APIs. Image bytes and extracted fields are not sent to a server.

JS YOO · 9 min · Published 2026-07-12 · last reviewed 2026-07-12 · reviewed by JS YOO

The local sequence

StageBrowser actionNetwork use
SelectFile input provides an explicit local FileNone
Inspectexifr parses readable fields in a worker when supportedNone
DecodecreateImageBitmap or an image element decodes pixelsNone
Re-encodeOffscreenCanvas or canvas creates a new BlobNone
VerifyThe new Blob is parsed againNone
DownloadA temporary object URL points to the local BlobNone

Architecture diagram

Browser-only image processing sequence
  1. Local fileExplicit user selection
  2. InspectSignature check and metadata parser
  3. DecodeImage pixels in browser memory
  4. Re-encodeCanvas creates a new Blob
  5. VerifyThe new Blob is parsed again
  6. DownloadTemporary local object URL
LOCAL FILE → signature check → metadata parser → image decoder → canvas pixels → new encoded Blob → metadata parser → local download. No step contains a server upload arrow.

Why re-encoding removes metadata

MetaRinse does not copy the original container. It decodes the visible pixel result and asks the browser encoder to create a fresh JPEG, PNG, or WebP Blob. The original EXIF/XMP/IPTC-style blocks are therefore not passed to the encoder. The new Blob is still verified because behavior should be observed, not merely assumed.

Worker and fallback behavior

When Worker, createImageBitmap, and OffscreenCanvas are available, parsing and encoding run away from the main interface. Files are processed sequentially to control memory. Browsers without OffscreenCanvas use an isolated canvas fallback on the main thread. Cancellation stops the queue and discards unfinished output.

Object URL lifecycle

Previews and downloads use blob: URLs that reference browser memory. MetaRinse revokes them when an item is removed, results are cleared, or the app unmounts. Files and metadata are not written to localStorage, IndexedDB, or an account.

What normal web requests still reveal

Loading the site sends ordinary requests for HTML, JavaScript, CSS, and self-hosted fonts. The hosting provider can receive standard connection data such as IP address and user agent. Before ads are enabled, MetaRinse loads only same-origin assets. Selected image bytes, names, metadata, previews, and hashes are excluded from every request.

Tradeoffs

  • JPEG and WebP are re-encoded with lossy quality settings.
  • PNG is regenerated and may lose profile-related information.
  • File size and subtle pixel values can change.
  • Vendor-specific metadata can be unreadable to the scanner.
  • Visible information and filenames require a separate review.

Sources

Related guides

Ready to inspect your own file?

Your image never leaves your device.

Clean images