Write a copy with the metadata blocks dropped and the compressed image data untouched
The tool loads here. It needs JavaScript, because the work happens on your device.
Your files and your privacy
Your photograph is never uploaded. It is read into this browser tab, parsed there, and the
cleaned copy is built there from the original bytes. No third-party script is loaded on
this page, and the page’s Content-Security-Policy restricts connect-src to this origin, so
the browser itself would block an upload even if the code attempted one.
What this tool does
Remove the hidden metadata a JPEG, PNG or WebP carries and download a cleaned copy. The
file is rewritten at the byte level rather than decoded and saved again, so the picture is
not re-compressed and loses no quality.
A JPEG, PNG or WebP is a container: a sequence of labelled blocks, some holding compressed
picture data and some describing who took the photograph, when, with what and where. This
tool walks that sequence, drops the blocks carrying metadata, and copies the rest through
unchanged. In a JPEG that means the APP1 Exif segment including its GPS sub-directory, the
APP1 XMP segment, APP13 Photoshop and IPTC records, COM comments and any other APPn
segment not recognised as rendering data. In a PNG it means eXIf, tEXt, zTXt, iTXt and
tIME chunks; in a WebP, the EXIF and XMP chunks. Everything removed is listed by name, and
so is everything deliberately kept.
How to use it
Choose a JPEG, PNG or WebP. The format is identified from the file’s own magic bytes,
not its extension.
Read what the file reveals: location and device fields are listed first, then every
other field the parser could read.
Select Remove metadata to build a cleaned copy from the original bytes.
Check the two lists that appear: what was removed, and what was kept because dropping it
would change how the picture displays.
Select Verify to re-read the cleaned copy, then download it. It is saved with a
-no-metadata suffix and your original is untouched.
Example use cases
Cleaning a photograph before posting it to a forum or a marketplace listing that keeps
whatever you upload.
Removing an editing history and an author name from an image supplied to a client.
Clearing the software name and write timestamp a screenshot tool wrote into a PNG text
chunk.
Supported input and output
Accepts
JPEG (.jpg, .jpeg), PNG (.png) and WebP (.webp), up to 50 MB
Format detected from magic bytes, so a mislabelled file is handled correctly or rejected
clearly
Produces
A cleaned copy in the same format, saved with a -no-metadata suffix
Compressed image data identical to the original, byte for byte
What this tool will not do
Removal is all or nothing. Every metadata block the parser recognises is dropped
together; there is no way to keep one field and remove another.
Rendering blocks are kept on purpose: APP0 JFIF density, APP2 ICC and APP14 Adobe in a
JPEG; gAMA, cHRM, sRGB, iCCP, pHYs, tRNS, bKGD and sBIT in a PNG; ICCP and animation
chunks in a WebP. A colour profile can itself carry a description string.
The EXIF Orientation tag lives inside the block that is removed, so a photograph that
relied on it to display the right way up may appear rotated afterwards.
Vendor MakerNote blobs are never decoded field by field. The whole EXIF block containing
them is removed, so their contents are never shown to you.
PNG zTXt and iTXt chunks are removed without being decompressed, and data hidden inside
the compressed picture data itself is neither detected nor removed.
HEIC, HEIF, AVIF, TIFF, DNG, camera RAW, GIF and SVG are not parsed at all and are
rejected rather than returned unchanged.
This is not a security tool. It makes no malware, virus, safety or anonymity claim of
any kind.
Common mistakes
Sharing the original afterwards. The cleaned file is a separate download with a
-no-metadata suffix, and the file already in your photo library still carries
everything.
Reading an empty field table as proof the file never held anything: it means nothing
this parser can read remains, and blocks it does not parse are removed without being
displayed.
Expecting the photo to keep its orientation. The tag that tells a viewer to rotate the
picture is inside the EXIF block and goes with it.
Feeding it a HEIC straight from an iPhone and treating the rejection as completion; that
file was never cleaned.
Technical notes
Nothing is ever decoded to a canvas in order to clean a file. A JPEG is walked marker by
marker up to the start-of-scan marker; unwanted APPn and COM segments are skipped and
everything from the scan onwards is copied verbatim, so the entropy-coded data is
identical. A PNG is walked chunk by chunk and metadata chunks are dropped whole, which
means no CRC has to be recomputed and IDAT is untouched. A WebP is walked as RIFF chunks;
EXIF and XMP are dropped, the matching presence bits in the VP8X flags byte are cleared so
a strict decoder is not told to expect metadata that is gone, and the RIFF size field is
rewritten.
Frequently asked questions
Does removing metadata reduce image quality?
No. For all three supported formats the compressed image data is copied through
unchanged, so the pixels in the cleaned file are identical to the pixels in the
original. That is different from tools that decode the picture and save it again, which
do lose quality.
Can I remove only some of the fields?
No. Removal works by dropping whole container blocks, so every recognised metadata block
goes at once. Keeping the timestamp while removing the location is not something this
approach can do.
Does this remove every trace of information?
No, and that is stated rather than glossed over. It removes the blocks listed for your
file’s format. It does not remove data hidden inside the compressed picture data, and it
deliberately keeps colour and density blocks because removing those would change how the
image looks.
How can I check the removal worked?
Use the Verify button, which re-reads the cleaned bytes and reports whether any readable
field survived. The before and after byte counts are shown as well.