Converting

Convert TIFF to JPG on Mac

By the Smol team8 min read

To convert TIFF to JPG on a Mac, run mkdir -p jpg && sips -s format jpeg *.tif --out jpg/, or open the TIFF in Preview and choose File → Export As… with JPEG as the format. On a 300 dpi letter-size scan that took a 25,249,952-byte TIFF down to 1,830,824 bytes, a 92.7% cut.

One warning first, because it costs people whole documents. If your TIFF has more than one page, sips converts the first one, ignores the rest, and exits 0 without a word. A three-page fixture produced exactly one JPEG. Everything on this page was measured on 2026-09-26 on macOS 27.0 (build 26A428).

Why are TIFF files so enormous?

Because TIFF’s default is to store every pixel, in full, with no compression at all, and a scanner produces a great many pixels.

Letter paper at 300 dpi is 2,550 × 3,300 pixels. At three bytes per pixel that is 25,245,000 bytes of raw payload before any headers, for one page of an invoice. The uncompressed TIFF our fixture produced came to 25,249,952 bytes, which is the payload plus 4,952 bytes of tags. Scan a 40-page contract at 300 dpi in colour and you have a gigabyte of paper.

Here is the same page written seven ways:

EncodingBytesvs uncompressedLossless?
TIFF, no compression (sips)25,249,9521.00×Yes
TIFF, PackBits (sips)25,249,9521.00×Yes, and see below
TIFF, LZW (sips)4,507,2520.18×Yes
TIFF, LZW (ImageMagick)4,481,4060.18×Yes
TIFF, Zip/Deflate (ImageMagick)3,619,3360.14×Yes
TIFF, JPEG-in-TIFF (ImageMagick)2,789,3700.11×No
JPEG, quality 75 (sips)1,830,8240.07×No

Three things fall out of that table. LZW is the setting that matters: it is lossless, it is understood by everything that reads TIFF, and it removed 82% of the file. If your scanner is producing uncompressed TIFFs, turning LZW on costs you nothing and there is no reason not to.

PackBits, on this file, did nothing at all. The sips -s formatOptions packbits output was byte-identical to the uncompressed one, and tiffinfo reports Compression Scheme: None on it. So the option was not applied rather than applied and ineffective. PackBits is a simple run-length scheme that struggles with scanner noise in any case, but do not expect sips to give it to you.

Zip beats LZW by 19% and JPEG-in-TIFF beats both, but a lossy TIFF is a strange object: you have paid TIFF’s overhead and given up the lossless guarantee that was the reason to use it. If lossy is acceptable, go to JPEG properly and take the full 92.7%.

What happens to a multi-page TIFF?

This is the section to read before you convert anything you cannot re-scan. TIFF supports multiple image directories in one file, which is why fax software and document scanners have used it for decades. Most image tools pretend that feature does not exist.

The fixture is a three-page 13,311,448-byte TIFF. Pillow reports n_frames = 3. Here is what each route does with it:

RouteFiles outResult
sips -s format jpeg1First page only, 1,830,900 B, exit 0 and no warning
magick multipage.tif out.jpg3out-0.jpg, out-1.jpg, out-2.jpg (1,924,024 / 1,893,946 / 1,896,705 B)
Smol, convert to jpg0Failed: “A required component is missing. Try reinstalling smol.”

ImageMagick is the correct tool here and it is free. It notices the extra directories and numbers the outputs for you:

brew install imagemagick

# one JPEG per page, numbered
magick contract.tif -quality 85 page.jpg

# keep the page order readable past nine pages
magick contract.tif -quality 85 page-%02d.jpg

# or collapse the pages into a single PDF, which is usually what you wanted
magick contract.tif contract.pdf

Our own failure is worth being precise about, because the error message is misleading. It is not a broken install. We tested a single-page TIFF written by the same tool, which converted normally to 2,588,914 bytes, then a two-page TIFF written by a completely different library, which failed the same way. Multi-frame input is the trigger, the same limitation that applies to animated GIF and animated WebP. If your TIFFs are scanned documents with more than one page, use ImageMagick for the split and keep us for the batch afterwards.

If the destination is a document rather than a set of images, converting a multi-page TIFF to PDF and then compressing that is a shorter road: compressing a scanned PDF without wrecking the OCR covers what that costs.

How do I convert TIFF to JPG on a Mac?

For single-page TIFFs, all the usual routes work and none of them need an install.

# a folder of single-page TIFFs, default quality (equivalent to 75)
mkdir -p jpg
sips -s format jpeg *.tif --out jpg/

# archival-leaning quality, and cap the long edge for web use
sips -s format jpeg -s formatOptions 92 scan.tif --out scan.jpg
sips -s format jpeg -Z 2400 *.tif --out jpg/

Both .tif and .tiff work, and sips identifies the format from the file contents rather than the name. Create the output directory first: --out will not make one and will not complain about its absence.

Preview covers the graphical case. Open the TIFF, File → Export As…, choose JPEG, set Quality. For a folder, open them all in one window, select the thumbnails and use Export Selected Images….

Smol converted the 4,507,252-byte LZW scan to 2,588,914 bytes, a 42.6% cut, and the Adobe RGB photograph from 653,924 to 141,346. Larger than sips in both cases because it converts at a higher internal fidelity, and it does the whole folder from a Finder right-click without a shell loop.

Does the colour profile survive the conversion?

Yes, through every native route we tested, and this matters more for TIFF than for any other input. Scanners and repro work routinely tag files Adobe RGB or a device profile, and Adobe RGB numbers displayed as sRGB come out visibly flat and wrong.

RouteOutput bytesProfile in the JPEG
sips82,645Adobe RGB (1998)
ImageMagick, default103,660Adobe RGB (1998)
Smol, convert to jpg141,346Adobe RGB (1998)
magick -strip103,082Gone. Reported as sRGB.

The last row is the mistake to avoid. -strip is often recommended as a file-size trick, and it removes the ICC profile along with the metadata. The pixel values do not change, so nothing looks broken in the file listing. Every viewer downstream simply assumes sRGB and renders the colours incorrectly. If you want the metadata gone without the colour damage, strip the metadata as a separate, deliberate operation and leave the profile alone.

Resolution survives as well, which is the other thing archivists care about. A 300 dpi TIFF came out as a JPEG reporting dpiWidth: 300.000 through both sips and Smol. That tag is what makes the page print at 8.5 × 11 inches instead of at 35 × 46. Check it with sips -g dpiWidth -g dpiHeight out.jpg before you delete anything.

When Smol is not the answer

For a multi-page TIFF, use ImageMagick. We fail on those outright, and sips is worse than failing because it succeeds with one page and says nothing about the others. magick contract.tif page-%02d.jpg is the right answer and it is free.

For one file, use Preview or sips. Two clicks or one command, already installed, and the built-in encoder produced the smaller JPEG on every fixture here.

For a real archive, do not convert at all. If the TIFF is the preservation master, it should stay a TIFF, with LZW on and the profile intact. Generate JPEG derivatives for distribution and keep the master. Converting the master and deleting it is a one-way decision that a 92.7% size saving does not justify.

Smol earns the $29 on volume: several hundred single-page scans that all have to come out as JPEG at one setting, with profiles preserved and resolution tags intact, from the Finder right-click menu, on a machine where client documents are not allowed to be uploaded. Sixty images converted in 2.6 seconds against 12.55 seconds for the equivalent shell loop in our batch measurements. One purchase, no subscription, fully offline.

Related: PNG to JPG, JPG to PNG, WebP to JPG, compressing a scanned PDF, and every format Smol reads and writes.

Frequently asked questions

How do I convert TIFF to JPG on a Mac?

Run mkdir -p jpg && sips -s format jpeg *.tif --out jpg/ in Terminal, or open the TIFF in Preview and choose File then Export As with JPEG selected. On a 300 dpi letter-size scan that took 25,249,952 bytes down to 1,830,824. Add -s formatOptions 92 if the scan is going to print.

Why is my TIFF file so large?

Because TIFF stores uncompressed pixels by default. Letter paper at 300 dpi is 2,550 by 3,300 pixels, which is 25,245,000 bytes of raw colour data for a single page. Turning on LZW compression in your scanner software cut the same page to 4,507,252 bytes with no quality loss at all.

What happens when I convert a multi-page TIFF to JPG?

With sips you get one JPEG of the first page, exit code 0, and no warning about the rest. Our three-page fixture produced a single file. ImageMagick handles it correctly: magick contract.tif page.jpg writes page-0.jpg, page-1.jpg and page-2.jpg, one per page.

Does converting TIFF to JPG lose the colour profile or the DPI?

No, through the native routes. An Adobe RGB (1998) TIFF produced a JPEG still tagged Adobe RGB (1998) through sips, ImageMagick and Smol, and a 300 dpi TIFF produced a JPEG reporting 300 dpi. Adding magick -strip does remove the profile, after which the file is treated as sRGB and the colours shift.

Should I use LZW or uncompressed TIFF for scans?

LZW, always. It is lossless, every TIFF reader supports it, and on our 300 dpi test page it removed 82% of the file. Zip compression is roughly 19% smaller again but less universally supported by older software. JPEG-in-TIFF is lossy, which defeats the reason for choosing TIFF.

Keep reading