ScrubPony vs ImageOptim

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.

the short version

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.

ScrubPonyImageOptim
Primary jobRemove identifying metadataReduce file size
Image dataCopied verbatim; bit-identicalRecompressed, losslessly or lossily by setting
Lossy modeNone, everOptional, with a quality slider
Removes metadataThe whole job, with a published tableAs part of optimisation
Keeps orientationRe-emits a 36-byte block automaticallyPreserved by default
Keeps ICC colour profileBy default; --strict drops itConfigurable; stripped by default in some versions
InterfaceCommand line onlyDrag-and-drop Mac app, plus a CLI
PlatformsmacOS and LinuxmacOS (ImageOptim-CLI and forks elsewhere)
FormatsJPEG onlyJPEG, PNG, GIF, SVG
Scriptable exit code for auditing--check exits 2 on identifying metadataNot its purpose
In-place editingYes, atomically, permissions preservedIn place by design
Verifiable pixel guaranteeFour-way check shipped with the sourceRecompression is the point
LicenceMITGPL-2.0
PriceFreeFree

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.