How to Compress a JPG to Under 100 KB on macOS (Preview, ImageMagick, ffmpeg)

How to compress a JPG file to 100 KB in MacOS?

A 12-megapixel iPhone photo is routinely 3–5 MB. A job-application portal, a government upload form, or a forum avatar field that caps you at 100 KB rejects it outright. macOS ships with everything you need to fix that without installing anything: Preview can re-encode a JPG at a lower quality in a few clicks, and if you live in the terminal, ImageMagick or ffmpeg do it in one command. This guide shows each native method, explains why lowering JPEG quality shrinks the file, and points you to a faster route when you want the tool to hit the target size for you.

Quick answer: Open the JPG in Preview, choose File > Export, set Format to JPEG, then drag the Quality slider left. Preview shows the resulting file size beside the slider as you drag — stop when it reads under 100 KB, then click Save. If the photo is still too big at low quality, shrink its pixel dimensions first with Tools > Adjust Size. For one-command terminal compression use magick input.jpg -quality 70 output.jpg (ImageMagick v7). To skip the trial-and-error entirely, compress JPEG online and let Autoscale target the size for you.

Jump to a section

Why 100 KB, and what “under 100 KB” really means

JPEG is a lossy format. When you save a JPG at a lower quality setting, the encoder discards high-frequency detail the eye is least likely to notice and stores the result more compactly. Lower quality means a smaller file and more visible artifacts (blockiness, soft edges, color banding); higher quality means a larger file that looks closer to the original. There is no single quality number that always lands at 100 KB — it depends on the image’s resolution and how much fine detail it contains. A flat, simple graphic compresses far smaller than a detailed landscape at the same quality setting.

One thing worth pinning down before you start: 100 KB is ambiguous. Finder and most macOS tools count in binary, where 100 KB = 102,400 bytes, while many web upload forms count in decimal, where 100 KB = 100,000 bytes. The gap is small (~2.4%), but if a portal rejects a file that Finder calls “100 KB,” aim for a little under — say 95 KB — to clear both definitions. (For the full story on binary vs decimal byte units, see MiB vs MB vs GB.)

Method 1: Preview (built in, no install)

Preview is the image viewer that comes with every Mac, so this needs no download. Apple’s own Preview guide documents the export-with-quality workflow.

  1. In Finder, right-click the JPG > Open With > Preview (or double-click if Preview is your default viewer).
  2. Choose File > Export from the menu bar.
  3. In the dialog, click the Format pop-up menu and choose JPEG.
  4. Drag the Quality slider toward “Least.” Preview displays the resulting file size right beside the slider and updates it live as you drag — keep dragging left until it reads under 100 KB.
  5. Click Save (give it a new name so you keep the original).

The live file-size readout is what makes Preview the easiest native option: you watch the number and stop at your target, no guessing. A typical 4–5 MB phone photo usually drops under 100 KB somewhere in the lower third of the slider, though a high-detail image may need resizing too (see the resize section).

Method 2: ImageMagick on the command line

ImageMagick is a scriptable image toolkit — ideal for batches or repeatable workflows. Install it with Homebrew:

In ImageMagick v7 (the current major version), the single convert command is deprecated — Apple’s Homebrew build prints a warning and tells you to use magick instead, per the ImageMagick v7 porting guide. Compress with:

  • -quality 70 sets JPEG quality on a 0–100 scale, where higher is better quality and a larger file. Lower the number to shrink the file further.
  • If quality alone isn’t enough, add a resize (downscaling pixels has a much bigger effect than quality — see below):

The 1280x1280\> syntax scales the image down so its longest side is at most 1280 px, and the \> means “only shrink, never enlarge.” Check the result:

Repeat with a lower -quality value or smaller dimensions until ls -lh shows under 100 KB. (If you’re on an old ImageMagick v6 install, the convert command still works the same way: convert input.jpg -quality 70 output.jpg.)

Method 3: ffmpeg on the command line

ffmpeg is primarily a video tool, but it also re-encodes JPEGs through its MJPEG encoder. Install it with Homebrew:

Then compress:

ffmpeg’s -q:v works on an inverted scale from the others. Per FFmpeg’s codec documentation, the MJPEG quantizer ranges from 2 (best quality, largest file) to 31 (worst quality, smallest file) — so here a higher number means a smaller file, the opposite of ImageMagick’s -quality. Raise the value toward 31 to shrink further. ffmpeg has no built-in “shrink, don’t enlarge” guard, so resize explicitly if needed:

For most “JPG under 100 KB” jobs, Preview or ImageMagick are simpler; reach for ffmpeg only if it’s already your tool of choice.

If quality alone won’t get you there: resize

Lowering quality can only do so much. A high-resolution photo (say 4032×3024 from an iPhone) holds millions of pixels — even at low quality, that many pixels may not compress below 100 KB without visible mush. The far more effective lever is pixel dimensions: halving an image’s width and height removes ~75% of its pixels, and file size falls roughly in proportion before quality even enters the picture.

In Preview, choose Tools > Adjust Size, which shows the Resulting Size estimate as you change dimensions. Reduce the width/height (1280 px on the longest side is plenty for most web uploads), then export at moderate quality. On the command line, use the -resize / -vf scale flags shown above. Resize first, drop quality second — in that order you’ll usually clear 100 KB while keeping the image legible.

Method comparison

MethodInstall neededQuality controlLive size feedbackBest for
PreviewNone (built in)Quality sliderYes — beside sliderOne-off files, no terminal
ImageMagickbrew install imagemagick-quality 0–100 (higher = bigger)No (check with ls -lh)Scripting, batches
ffmpegbrew install ffmpeg-q:v 2–31 (higher = smaller)No (check with ls -lh)Already in your toolkit
Online compressorNone (browser)Autoscale to target KBYes — targets the sizeHitting an exact cap fast

Compress to a target size online

The drawback of every native method above is the same: you’re guessing at a quality number, exporting, checking the size, and repeating until you land under 100 KB. If you’d rather state the target and let the tool find the setting, use xconvert’s compress JPEG tool — the same JPG compressor — and turn on Autoscale, which iterates the quality for you to keep the image as sharp as possible while landing under your chosen size. For other formats (PNG, WebP, GIF) or mixed batches, the general-purpose image compressor handles them too.

Your file uploads over an encrypted connection, is compressed on our servers, and is deleted automatically a few hours later — nothing is kept. It works the same on any Mac regardless of macOS version (currently macOS Tahoe 26, with Sequoia 15 still widely used), and on iPhone, iPad, Windows, or Linux, since it runs in the browser rather than relying on a desktop app being installed.

FAQ

Does lowering JPEG quality in Preview lose image data permanently?

Yes. JPEG is lossy, so each re-save at a lower quality discards detail that can’t be recovered. Always export to a new filename and keep your original, so you can re-try at a higher quality if the result looks too rough. Never re-compress the same JPG repeatedly — the artifacts compound.

What quality setting gives me 100 KB?

There’s no fixed number — it depends on the image’s resolution and detail. For a typical web-sized photo, ImageMagick -quality in the 60–75 range or Preview’s slider around the lower third is a common starting point. Use Preview’s live size readout, or ls -lh after each ImageMagick/ffmpeg run, and adjust from there. For a detailed photo, resize the dimensions down first — that does more than any quality tweak.

Why does ffmpeg’s quality number work backwards from ImageMagick’s?

They use different conventions. ImageMagick’s -quality is a 0–100 JPEG quality percentage (higher = better, bigger). ffmpeg’s -q:v for MJPEG is a quantizer from 2 to 31 where lower means better quality and a larger file (2 is best, 31 worst). So raising -q:v shrinks the file, while raising ImageMagick’s -quality grows it.

I’m getting a “convert command is deprecated” warning.

That’s ImageMagick v7 telling you to use magick instead of convert. Swap convert input.jpg ... for magick input.jpg ... — same options, no warning. The old convert still runs for backward compatibility but is on its way out.

Does compressing online upload my photo somewhere?

Yes — the file is sent over an encrypted (HTTPS) connection to xconvert’s servers, compressed there, and then deleted automatically after a few hours. Files aren’t kept or shared. If you’d rather not upload at all, the Preview, ImageMagick, and ffmpeg methods above all run entirely on your own Mac.

What does “100 KB” mean — 100,000 or 102,400 bytes?

Finder reports in binary (100 KB = 102,400 bytes); many upload forms count in decimal (100 KB = 100,000 bytes). To be safe under either definition, aim for around 95 KB. See MiB vs MB vs GB for the full breakdown.

Sources

Last verified 2026-06-17.

By admin