What is actually in the file, and what this removes
A JPEG is a chain of segments. The pixels occupy one of them; the rest are headers, and metadata hides in three of those. This tool parses the chain, drops the three, and copies everything else through untouched.
- EXIF and XMP share the APP1 segment. EXIF is what your camera or phone writes: make and model, lens, serial number, exposure settings, orientation, the capture timestamp and, when location services were on, a
GPSLatitude/GPSLongitudepair with a reference hemisphere, often alongside altitude and a UTC timestamp. That is the field that turns a photo of a living room into a home address. XMP is Adobe’s XML metadata and tends to carry the editing history, ratings and captions. - IPTC travels inside a Photoshop resource block in APP13 — the press-photo fields: creator, credit line, copyright notice, location names typed by a person rather than recorded by a sensor.
- Comment segments are free-form text that editing software writes without asking, frequently naming the software and the user.
Three segments are kept on purpose
Stripping everything would be easier to describe and worse to look at. The JFIF density header, the embedded ICC colour profile and Adobe’s colour-transform marker are left in place: none of them identifies you, and removing the colour profile shifts every colour in the image on a wide-gamut display. Segments this tool does not recognise are also kept, on the principle that silently damaging an image is worse than leaving an unknown header in it.
Nothing is re-encoded
This is the part that separates it from the usual advice. Opening a photo in an image editor and re-saving it does remove metadata, but it also decodes and re-compresses the picture — a second trip through JPEG’s lossy quantisation that softens edges and blotches flat areas, and it happens again every time someone repeats the trick. Screenshotting is the same bargain with the resolution thrown away too.
Here the compressed scan data is copied out of the original file byte for byte and reassembled with the offending headers missing. The output decodes to identical pixels; the file is smaller only by the size of the metadata that left. You can run the same image through repeatedly and it will never degrade.
Where it stops
- JPEG only, and it checks. The file is identified by its leading bytes, not its extension. Hand it a PNG, WebP, HEIC, AVIF, GIF, BMP or TIFF and it refuses and names the format it found, rather than handing back an untouched file that you would reasonably believe had been cleaned. Convert to JPEG first, then strip.
- Metadata is not the only identifier. Removing the GPS tag does not remove the recognisable street outside the window, and it does nothing about a filename like
IMG_home_2024.jpg. Sensor-pattern noise also survives, and is what forensic analysis actually uses to tie a photo to a camera. - Several files at once come back as a ZIP. If some of them were not JPEGs, the rest are still in the archive and the page names the ones it could not clean — a partial result you can see is safer than a silent one.
- Orientation lives in EXIF. Removing it removes the rotation flag with it. A photo taken on a tilted phone may display rotated afterwards in software that relied on the tag; the pixels were always stored that way.