Smaller, or identical.
ImageOptim is an excellent Mac app for making images smaller, and stripping metadata is part of how it does that. ScrubPony makes files smaller only by exactly the size of what it removed, and guarantees the picture is bit-identical. Those are different promises.
ImageOptim to shrink images for the web; ScrubPony to clean photographs you want unchanged. ImageOptim runs a stack of optimisers to squeeze bytes out of an image, removing metadata as part of that. It is a graphical Mac app and it is very good at its job. ScrubPony does not optimise anything: it removes segments and copies the entropy-coded image data through verbatim, so the decoded picture is bit-for-bit what it was. If the file is a photograph you may later want at full fidelity, that difference matters.
At a glance.
| ScrubPony | ImageOptim | |
|---|---|---|
| Primary job | Remove identifying metadata | Reduce file size |
| Image data | Copied verbatim; bit-identical | Recompressed, losslessly or lossily by setting |
| Lossy mode | None, ever | Optional, with a quality slider |
| Removes metadata | The whole job, with a published table | As part of optimisation |
| Keeps orientation | Re-emits a 36-byte block automatically | Preserved by default |
| Keeps ICC colour profile | By default; --strict drops it | Configurable; stripped by default in some versions |
| Interface | Command line only | Drag-and-drop Mac app, plus a CLI |
| Platforms | macOS and Linux | macOS (ImageOptim-CLI and forks elsewhere) |
| Formats | JPEG only | JPEG, PNG, GIF, SVG |
| Scriptable exit code for auditing | --check exits 2 on identifying metadata | Not its purpose |
| In-place editing | Yes, atomically, permissions preserved | In place by design |
| Verifiable pixel guarantee | Four-way check shipped with the source | Recompression is the point |
| Licence | MIT | GPL-2.0 |
| Price | Free | Free |
Honest tradeoffs.
Where ImageOptim wins
- It makes files dramatically smaller. That is the entire point and it does it well, stacking several optimisers and keeping the best result. ScrubPony removes exactly the bytes of the segments it dropped and not one more.
- It is a real app. Drag a folder onto a window. No terminal, no flags, no man page. For most people that is the difference between a tool used and a tool bookmarked.
- It handles PNG, GIF and SVG. ScrubPony reports and skips all three.
- Lossy mode when you want it. For web delivery, a controlled quality reduction is often exactly right, and ImageOptim gives you a slider for it.
- It preserves orientation too. Worth saying plainly: this is not a point of difference. ImageOptim gets this right.
Where ScrubPony wins
- The picture is bit-identical, provably. No decoder, no encoder, no recompression. The bytes from the SOS marker to end of file are copied in one operation, and you can confirm it with two commands and a hash.
- Removal is the job, not a side effect. A published keep/drop table, a fail-closed default for unrecognised vendor segments, and a dry run that prints the reason for every decision.
- A verdict for scripts. --check changes nothing and exits 2 if anything carries identifying metadata, which is what makes a pre-commit hook or a CI gate possible.
- It runs on Linux. The same binary, the same behaviour, verified on aarch64 and x86-64 with gcc and clang as well as on macOS.
- Interrupt safety is asserted. 30 SIGKILLs mid-write on a 24 MB in-place scrub, zero partial files, no stray temporaries.
- Nothing to trust but 2,251 lines. No optimiser stack, no bundled binaries, no dependencies beyond libc.
The verdict.
- Choose ImageOptim if the goal is smaller files for a website, you want a graphical app, or the folder has PNGs and SVGs in it.
- Choose ScrubPony if the goal is clean photographs rather than small ones, you need the image data provably unchanged, or you want an exit code you can gate a pipeline on.
- Use both if you publish photographs: ScrubPony first so the archived master is clean and identical, ImageOptim afterwards on the derived copy you actually upload.
Common questions.
Is ImageOptim's lossless mode really lossless?
Its lossless optimisers do preserve the decoded pixels. The file is still rewritten, so the compressed bytes change, which is a different guarantee from the one ScrubPony makes. Whether that distinction matters depends on whether you need to be able to prove nothing was recomputed.
Can I use ImageOptim on Linux?
The app is macOS-only. There are CLI wrappers and the underlying optimisers exist everywhere, but the drag-and-drop experience does not travel.
Why not just optimise and call it scrubbed?
Because the metadata policy is incidental to an optimiser rather than specified by it, and "it removes metadata as a side effect of making files smaller" is not a sentence you want to lean on when the field in question is a GPS coordinate.
Try ScrubPony
Free and MIT-licensed. No dependencies beyond libc, no configure step, and a pixel claim you can check in two commands.