Metadata eraser for JPEG, PNG, WebP, and PDF.
Files are processed in your browser. Nothing is uploaded.
muda (無駄, “waste”) strips identity metadata from images and PDFs — GPS, camera, software, comments, XMP, Photoshop IRB, embedded thumbnails, PDF info and trailer IDs — and leaves the pixels and page text alone. GPS, camera, software, and comments can be kept if you check them; XMP and thumbnails always go.
Color profiles stay (iCCP / sRGB / JPEG ICC / Adobe APP14 / WebP ICCP), so colors do not shift. The compressed image data is copied, not decoded and re-encoded.
| Format | In the browser |
|---|---|
| JPEG | yes |
| PNG | yes |
| WebP | yes |
| yes. Text stays. Info, XMP, the trailer ID, and tags inside embedded JPEGs are stripped. Older revisions are dropped. Encrypted files are rejected. | |
| HEIC, RAW, TIFF, video, audio | no |
Drop files, optionally keep selected tag families, Strip, download. Work runs in WASM (muda-core) inside the page. The server only ships HTML, CSS, and WASM.
Lossless container rewrite with img-parts for images. PDFs are rebuilt in one generation with lopdf. kamadak-exif is read-only, for the per-file report of what left. Kept EXIF families are rewritten at the TIFF field level so GPS, camera, software, and comments can stay independently.
- JPEG — drop XMP, Photoshop APP13, other metadata APPn, and unkept EXIF fields. Keep JFIF APP0, ICC APP2, Adobe APP14. Keep COM / selected EXIF families when asked.
- PNG — keep
IHDR,PLTE,IDAT,IEND, and color/correctness chunks (tRNS,gAMA,cHRM,sRGB,iCCP,pHYs, …). DroptIME. KeepeXIf/ text chunks only for selected families. - WebP — always drop
XMP. KeepVP8/VP8L/VP8X/ALPH/ANIM/ANMF/ICCP. Rewrite or dropEXIFto match the keep list. - PDF — rebuild one generation with
lopdf. Drop info (except Title), XMP, trailer/ID, incremental history, embedded files, JavaScript, and signatures. Run the JPEG stripper on/DCTDecodeimages. Page content is not rendered. Encrypted files are rejected.
crates/
muda-core/ format sniff + JPEG/PNG/WebP rewrite and PDF rebuild
muda-web/ Leptos SSR + Axum shell, WASM client
License: MIT OR Apache-2.0.
cargo install cargo-leptos --locked
rustup target add wasm32-unknown-unknown
cd crates/muda-web
cargo leptos watchOpen http://127.0.0.1:3000/. Drop JPEG/PNG/WebP/PDF, Strip, download a cleaned file or a ZIP.
cargo test -p muda-coreFixtures live in crates/muda-core/tests/fixtures/. Regenerate with:
python3 crates/muda-core/tests/generate_fixtures.py