Metadata is not a single field but a stack of separate containers, each written by a different tool along the image's life: the camera adds EXIF, an editor writes XMP and IPTC, a phone appends a GPS IFD, and modern AI generators bolt on a C2PA manifest. Stripping one does nothing for the others, which is why a single re-save often leaves half the trail behind. GhostMeta strips metadata by parsing every container in one pass — EXIF and XMP in the JPEG APP1 segment, IPTC in APP13, the C2PA/JUMBF box, and the tEXt, iTXt and eXIf chunks in PNG — then re-encoding a copy that carries none of them. Because it reads the file structurally rather than editing tags in place, a mixed set of formats all come out neutral without you knowing where each tool hid its data. The whole operation runs client-side: the image is never uploaded, so stripping metadata here is safe for confidential or work files that must not leave the machine.
GhostMeta strips metadata from a JPEG, PNG, WebP or HEIC by re-encoding it in your browser. There is no allowlist to maintain: since the image is rebuilt from its pixels, no container survives, proprietary fields included. Batch processing returns a ZIP of the cleaned copies.
A cleaned image is not an anonymous image. The pixels remain, and they talk. A visible watermark stays visible. A street sign stays readable. A reflection in a window stays a reflection. Metadata cleaning treats the file, not the scene that was photographed.
Pixel-level traces also remain, such as Google's SynthID, designed precisely to survive recompression. GhostMeta does not remove them and does not pretend to. The stated scope is the real scope, which is the only defensible position for a privacy tool.
The 4,096-pixel cap on the longest side is worth knowing before processing a series: beyond it, the image is resized. That is a deliberate trade-off, meant to avoid memory crashes on phones, where the browser has far less headroom than a desktop. For a photo destined for print, clean a copy and keep the original aside.
JPEG, PNG and WebP are handled directly. iPhone HEIC is converted before processing, which loads an extra library on first use: that is the one case where the first operation is noticeably slower.
Output is a JPEG or a PNG depending on the input. A PNG stays pixel-lossless; a JPEG is recompressed. File size almost always drops, not merely because metadata is gone, but because the re-encode applies its own compression settings.
One consequence often surprises people: two runs on the same JPEG do not produce byte-identical files. Each re-encode applies compression afresh, so the output differs slightly even though the visible result does not. If you need reproducibility, work from the original each time rather than re-cleaning an already cleaned file.
Batch processing takes several files at once and returns a ZIP. It is the mode to prefer as soon as there are more than two images: cleaning one file at a time always ends up letting one slip through.
Every image in the series is processed in your browser, one after another. Batching changes neither the method nor the scope, only the number of round trips you have to make.
| Input format | Processing | Output |
|---|---|---|
| JPEG | Direct canvas re-encode | Recompressed JPEG |
| PNG | Direct re-encode, text chunks dropped | Pixel-lossless PNG |
| WebP | Direct re-encode | Depends on the browser encoder |
| HEIC, HEIF | Converted first, then re-encoded | JPEG |
EXIF, IPTC, XMP, the GPS IFD, embedded thumbnails, and C2PA/JUMBF manifests. GhostMeta targets the containers themselves, so unknown vendor tags inside them are removed too.
A plain re-save often preserves EXIF or XMP. GhostMeta re-encodes the pixels and drops every metadata container, so nothing is silently carried over.
No. It runs in your browser via the Canvas API. Nothing is uploaded, which makes it suitable for sensitive or internal images.
Yes. PNG stores text and EXIF in tEXt, iTXt, zTXt and eXIf chunks; GhostMeta clears those just as it clears the APP segments in a JPEG.
The C2PA/JUMBF metadata manifest is stripped. Note this is the metadata layer — it does not touch any visible or pixel-embedded watermark.
Cleaning one image is free. Stripping metadata from many files at once is available with Premium.