Melt guide

Why is my PNG so big — and how to make it smaller on Mac

PNGs balloon fast because they're lossless by default. Here's why it happens and how to shrink them on macOS.

4 min read

You exported a PNG from Figma and it’s 6.2 MB. The Slack upload bar crawls, the email bounces, and you’re staring at a static logo wondering how a few hundred pixels turned into a small movie. The good news — PNGs are almost always wildly inflatable, and you can usually cut 70-80% with no visible change.

Why this happens

PNG is lossless. Every pixel is stored exactly as the encoder saw it, which is great for fidelity and terrible for file size. Three things make it worse on Mac:

The native way

sips can re-encode a PNG but won’t quantize. From Terminal:

sips -s format png —setProperty formatOptions 50 input.png —out output.png

Expect 10-20% savings — nothing like what the file is actually capable of. Preview is worse: re-exporting from Preview often produces a file the same size or larger.

If you’re comfortable with Homebrew, pngquant is the standard:

brew install pngquant && pngquant —quality=65-80 input.png

That’s the tool every “PNG optimiser” wraps under the hood. Run it and a 6 MB file routinely lands at 900 KB with no visible difference.

The faster way

Download Melt — a $9.99 one-time Mac app that runs the same pngquant-grade quantization plus zlib compression in a drag-and-drop pass. No Terminal, no Homebrew.

  1. Download Melt and drag the PNG (or a folder of them) in.
  2. Leave the format on PNG and pick a quality — 80 is the usual sweet spot.
  3. Click Compress. Output saves next to the original.

Melt has a “never makes a file bigger” safety check, so a tiny icon that’s already optimised won’t get re-saved as something larger.

How much smaller will it really get?

Screenshots and UI exports: typically 70-85% smaller. App icons and logos with limited colour: 80-90%. Photographs saved as PNG (which they shouldn’t be): 30-50%, and you’re better off converting to JPEG. If the answer is “barely any,” that’s usually a sign the file is already optimised — and Melt will just hand it back unchanged.

← All Melt tips