Skip to content

Batch Resize Images on Mac

Batch resize images on Mac with sips loops, consistent max-width rules, and GetCompress folder presets. Scale dozens of PNG and JPEG files locally.

By Petr Samokhin

The sprint handoff folder holds 48 PNG mockups at 2880 px wide. Opening each file in Preview to set the same width takes an hour you do not have. Batch resize images once with a fixed max edge, then compress or convert in a second pass if needed.

When batch resize pays off

Single-file tools break down when filenames differ but display requirements do not.

SignalBatch approach
Same max width for every heroOne sips loop or preset
Mixed PNG and JPEG in one folderSeparate commands or unified app
Weekly design exportsFolder monitoring plus saved preset
One-off screenshotPreview is enough

Batch resize changes pixel dimensions only. It does not replace thoughtful format choice. See how to compress images on Mac for JPEG vs PNG vs WebP after scaling.

Organize source folders

Copy sources into an originals subfolder before batch work. Never overwrite masters when a client asks for a larger revision next week.

  1. Create originals/ and out/ beside your working folder.
  2. Move or copy files to process into originals/.
  3. Run batch commands writing only to out/.
  4. Spot-check three files: one photo, one UI screenshot, one image with text.

Remove macOS .DS_Store and stray .heic files from the batch directory when commands use wildcards. Rename files with spaces carefully or quote paths in Terminal.

Document the target width in README or ticket comments so QA knows what to expect in the handoff zip.

Sort files by orientation when your preset uses different max edges for portrait social assets vs landscape heroes. Two quick subfolders (portrait/ and landscape/) prevent accidental stretching when batch commands assume one max width for the entire set.

Batch resize with sips

Open Terminal, cd to originals, and scale every JPEG to max edge 1920 px:

mkdir ../out
for f in *.jpg; do sips -Z 1920 "$f" --out "../out/$f"; done

Batch PNG the same way:

for f in *.png; do sips -Z 1920 "$f" --out "../out/$f"; done

Convert HEIC to JPEG at width in one step:

for f in *.HEIC; do sips -Z 1920 -s format jpeg -s formatOptions 85 "$f" --out "../out/${f%.HEIC}.jpg"; done

sips is built in and fast. It does not preview results, remember presets, or handle exotic formats without extra flags.

For pixel-width fundamentals, see resize image pixels on Mac .

Consistent width across formats

Use one max edge (for example 1920 px) for heroes unless the CMS documents different sizes per template.

Asset typeWidth hint
Blog hero1920 px max edge
Inline figure1200 to 1600 px
Email banner600 to 800 px
Icon stripMatch design spec exactly

After batch resize, run lossless PNG pass with oxipng or convert heroes to WebP. PNG to WebP on Mac covers web delivery after dimensions are correct.

Read lossy vs lossless compression when you choose whether batch output stays PNG or moves to JPEG.

Online batch resize services receive every file you upload. For NDA mockups and unreleased campaigns, keep the folder on disk. See are online file compressors safe for what upload actually means.

Quality after resize

Resize first, then tune lossy quality on JPEG exports:

for f in ../out/*.jpg; do sips -s formatOptions 85 "$f"; done

Avoid re-saving the same JPEG at lower quality repeatedly. Export once from resized sources.

Compare total folder size before and after in Finder Get Info. A 60% drop is common when sources were 3x display width.

Log the sips command you used in the ticket or commit message. Future you will forget whether the sprint used 1920 px or 1600 px unless the number is written down somewhere searchable.

Using GetCompress

GetCompress handles mixed image folders on your Mac without upload. Useful when handoff directories contain PNG, JPEG, HEIC, and WebP every sprint.

  • Drop the whole folder and set max width, output format, and quality in one panel.
  • Save presets (for example “handoff 1920px JPEG q85”) instead of maintaining shell scripts per project.
  • Preview edge cases before you batch fifty UI screenshots.
  • Batch resize images on Mac and convert format in the same job when the CMS expects WebP.
  • Enable folder monitoring to resize new exports automatically when design tools write to a shared directory.

GetCompress does not replace sips in a minimal CI script. It pays off when non-developers run the same resize every week without touching Terminal. Pair with batch compress and convert on Mac when the handoff also needs format changes.

Spot-check one portrait and one landscape file after the first batch run before you send the zip to stakeholders.

Buy GetCompress now for local media compression with reusable presets and no media upload.