Skip to content
NoWatermark

Methodology

What we inspect, what we can remove, and — the part most tools leave out — what we cannot determine at all.

Capability matrix

This table is generated from the same configuration the scanner and cleaners read. If a row says No, the product cannot make that claim anywhere in the interface.

SignalDetectRemoveVerify
EXIFYesYesYes
XMPYesYesYes
IPTCYesYesYes
GPSYesYesYes
PNG text chunksYesYesYes
C2PA / Content CredentialsPresence only — signatures are not cryptographically verified, and cloud-side recovery is out of scope.YesYesYes
AI generator metadataYesYesYes
Hidden UnicodeYesYesYes
SynthIDEmbedded in pixels. We cannot confirm presence or absence.NoNoNo
Statistical text watermarksEncoded in word choice. Not detectable client-side.NoNoNo

How processing works

When you select a file, the browser reads it into memory and hands the bytes to a Web Worker running on your own device. The worker identifies the real format from its magic bytes — never the extension or the reported MIME type — walks the container structure, and extracts the metadata blocks it recognises.

Cleaning rewrites the container without the metadata structures and copies the compressed image data through untouched. Nothing is decoded and nothing is re-encoded, so the pixels in the output are bit-identical to the input.

The cleaned bytes are then scanned a second time, and the before-and-after report you see is the difference between those two scans. A signal is reported as removed only because a fresh scan can no longer find it — never because a cleaner asserted it.

What we keep on purpose

Colour profiles. ICC profiles carry no personal or provenance information, and removing one visibly shifts an image's colours. We report them as detected and deliberately preserved.

Image rotation. Phones record orientation in an EXIF tag rather than rotating pixels. Stripping it makes portrait photos display sideways. When a file carries a rotation, we preserve exactly that one field, say so in the report, and offer a switch to remove it anyway.

Structural data. JFIF headers, Adobe colour-transform markers, and every critical chunk needed to decode the image.

The three statuses

Detected — the signal was found in the file.

Not detected — we inspected the places that signal lives and it was not there. We only use this where absence is genuinely establishable.

Unable to verify — we have no way to look. SynthID reads this on every image, permanently, because detecting it requires Google's own detector. This is not a weaker form of "not detected"; it is a statement about our instruments rather than about your file, and it never appears in a removed list.

Known limitations

  • C2PA manifests are detected and partially read, but signatures are not verified against a trust list. We never report a manifest as valid or invalid.
  • Durable Content Credentials can be re-associated with an image by a provider after the manifest is removed, using an invisible watermark or content fingerprint. Removing a manifest cleans your copy of the file, not anyone else's records.
  • Pixel-embedded watermarks such as SynthID are neither detectable nor removable here.
  • Statistical text watermarks are not detectable client-side by anyone, including us.
  • Supported formats are JPG, PNG and WebP. AVIF, HEIC, PDF, SVG, audio and video are not supported.
  • Very large files are limited by browser memory rather than by any server constraint, since there is no server.

Verifying our privacy claim yourself

Load any tool page, disconnect from the internet, then scan and clean a file. Everything works, because processing was always local. Alternatively, open your browser's network panel and watch while you use the tool: no request carries your file, its contents, its name, or anything derived from them.