JPEGPack compresses JPEG photos on your Mac, measuring the visual quality of every single one - 30 to 50% fewer bytes, with no difference you can see.
macOS 13 or later · Apple SiliconThe camera picks one quality setting for every shot and errs on the safe side. The result carries bytes that change nothing on screen.
A wedding delivers thousands of JPEGs. Every extra megabyte gets paid for in disk, in cloud storage and in upload time to the client gallery.
Exporting everything at "quality 80" ruins the hard photo and wastes bytes on the easy one - each photo needs a different point. Getting it right means measuring visual quality photo by photo.
JPEGPack never asks you for a quality setting. It measures the visual quality of every compressed photo against its original - and that measurement is what turns "looks the same" into a verifiable statement.
SSIMULACRA2 is a modern visual quality metric, designed to approximate human judgement. It compares the compressed photo against the original and returns a score. JPEGPack only accepts a result that scores 82 or higher - the level at which the difference stops being visible.
The two open identically on screen, side by side. The difference is the size - and the score, which guarantees the savings did not come out of the quality. It is the same level of result as JPEGmini, measured instead of promised.
There is no single quality setting that suits every photo. JPEGPack runs a binary search per photo: it compresses at a candidate quality, measures the score, squeezes or eases off, and repeats until it finds the smallest file that still passes the ruler.
The photo is re-encoded with mozjpeg at a candidate quality.
The compressed version is compared against the original with SSIMULACRA2.
Score to spare? Squeeze harder. Below 82? Ease off.
The binary search converges on the smallest file that still passes the ruler.
One final pass at full resolution. EXIF, XMP, ICC and file dates stay intact.
Measuring several attempts at full resolution would be slow. The quality search runs on a 1024px proxy of each photo - enough for the metric to decide - and only the final encode touches full resolution, in a single pass. In practice: about 6 seconds for 30 7-megapixel photos on Apple Silicon.
The re-encode uses mozjpeg, an encoder that squeezes more compression out of the same JPEG format. The file that comes out is still an ordinary JPEG: it opens in any browser, gallery and editor, with no plugin and no conversion.
Every image goes through the binary search with SSIMULACRA2 as the ruler. The compression point is decided case by case, never by a fixed number.
EXIF, XMP, ICC profiles and Photoshop blocks are preserved, along with the files’ creation and modification dates.
Replace the originals, or copy the compressed versions to another folder. In copy mode, the original is never touched.
Drag files or entire folders. The queue works through everything, with progress and a result per photo.
Cap the longest side in pixels for gallery and web deliveries, in the same pass as the compression.
A native app for macOS 13 or later, built for Apple Silicon. Intel version coming soon.
Covers two Macs, with one year of updates included. No subscription: the licence never expires.
Buy a licenceNew versions for a year. After that the app keeps working as it is - nothing stops when the year ends.
The full app, no account and no email. Download it and use it.
Download JPEGPack and compress your next job with quality measured photo by photo.
Download for MacmacOS 13 or later · Apple Silicon · version 1.0.0 · 5,1 MB