macOS · Apple Silicon

Smaller. Measured. Proven.

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 Silicon
JPEGPack
Longest side ≤ 1800px
−38%
68.4 MB → 42.4 MB
24 photos compressed
26.0 MB saved
Places
Macintosh HD994.6 GB
LaCie Backup199.8 GB
Desktop
Documents
Pictures
Movies
Music
7 items · PlacesCompress selection
01 · The problem

The camera writes more bytes than the photo needs.

01

Straight-out-of-camera JPEGs run fat

The camera picks one quality setting for every shot and errs on the safe side. The result carries bytes that change nothing on screen.

02

Thousands of photos, and each one costs

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.

03

Compressing by hand fails both ways

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.

02 · How it works

Smaller only counts if no one can see the difference.

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.

A · The ruler

SSIMULACRA2, a score for what the eye sees.

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.

DSC_0114.JPG · original
7 MP · straight from the camera
SIZE2.65 MB
DSC_0114.JPG · compressed · SSIMULACRA2 ≥ 82
the same pixels to the eye · EXIF intact
SIZE1.88 MB

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.

B · The search

Compress, measure, adjust - until each photo finds its point.

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.

01

Compress

The photo is re-encoded with mozjpeg at a candidate quality.

02

Measure

The compressed version is compared against the original with SSIMULACRA2.

03

Adjust

Score to spare? Squeeze harder. Below 82? Ease off.

04

Repeat

The binary search converges on the smallest file that still passes the ruler.

05

Write

One final pass at full resolution. EXIF, XMP, ICC and file dates stay intact.

2.65 MB → 1.88 MB·SSIMULACRA2 ≥ 82the smallest file that still passes the ruler
C · The speed

The search runs on a proxy. The final encode is a single pass.

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.

03 · Features

What comes in the app.

Quality measured per photo

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.

Metadata and dates intact

EXIF, XMP, ICC profiles and Photoshop blocks are preserved, along with the files’ creation and modification dates.

Two write modes

Replace the originals, or copy the compressed versions to another folder. In copy mode, the original is never touched.

Real batches

Drag files or entire folders. The queue works through everything, with progress and a result per photo.

Optional resizing

Cap the longest side in pixels for gallery and web deliveries, in the same pass as the compression.

Native to macOS

A native app for macOS 13 or later, built for Apple Silicon. Intel version coming soon.

04 · Comparison

Fixed quality and JPEGPack.

WHAT HAPPENS DURING COMPRESSIONFixed qualityJPEGPack
Measures the visual quality of the result
Fixed quality: no
JPEGPack: yes
Picks the compression point photo by photo
Fixed quality: no
JPEGPack: yes
Protects the hard photo from being degraded
Fixed quality: no
JPEGPack: yes
Avoids wasting bytes on the easy one
Fixed quality: no
JPEGPack: yes
05 · Pricing

One-off purchase, two Macs.

LICENCE
US$ 29one-off payment

Covers two Macs, with one year of updates included. No subscription: the licence never expires.

Buy a licence
UPDATES
1 yearincluded

New versions for a year. After that the app keeps working as it is - nothing stops when the year ends.

TRIAL
15 daysfree

The full app, no account and no email. Download it and use it.

Prices in US dollars. In Brazil: R$ 149, also a one-off payment.
06 · FAQ

Questions.

Does this ruin my photos?
Not at any visible level - and that is not a promise, it is a measurement. Every compressed photo is compared against its original with SSIMULACRA2, a metric built to approximate the human eye, and is only accepted at a score of 82 or higher. Below that, the result is discarded and the search tries another point.
Isn’t "visually lossless" just marketing?
It is a measured claim. There is a number (the SSIMULACRA2 score), a target (82) and a check on every photo. JPEG is a lossy format by definition - the bytes do change; what the ruler guarantees is that the difference stays below what the eye can tell apart.
How much smaller does a photo get?
It depends on the photo - deciding that case by case is the whole job of the app. In general, 30 to 50% fewer bytes. A 2.65 MB reference photo comes out at up to 1.88 MB, at the same quality level JPEGmini delivers.
What about metadata? EXIF, colour, dates?
They stay. EXIF, XMP, ICC profiles and Photoshop blocks are preserved, and so are the file dates - the compressed photo does not become "from today" in your library.
Does it touch my originals?
Only if you tell it to. There are two modes: replace the originals, or copy the compressed versions to another folder. In copy mode the original is never touched - not even to rewrite a byte.
Is it fast?
About 6 seconds for 30 7-megapixel photos on Apple Silicon. The trick is an honest one: the quality search runs on a 1024px proxy, and only the final encode goes through full resolution, exactly once.
Does it work with RAW, PNG or HEIC?
No. JPEGPack does one thing: JPEG in, smaller JPEG out. For the delivery workflow - export JPEGs, compress before uploading - that is exactly the missing piece.
Does it run on Intel?
Not yet. The current build is made for Apple Silicon. The Intel version is on its way - and this page will say so when it exists.

Deliver the same photos. Upload fewer bytes.

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
© 2026 JPEGPackmacOS 13 or later · Apple Silicon