When you need batch screenshot processing

One screenshot is easy. Fifty screenshots is a problem. If you're preparing App Store screenshots across five device sizes, creating documentation with 30 annotated images, or compressing a folder of Retina captures before uploading to a CMS, doing it one file at a time wastes hours.

Mac has built-in tools that handle most batch operations without installing anything. This guide covers every common batch operation: renaming, resizing, format conversion, compression, watermarking, and metadata stripping. We'll start with the simplest approaches and work up to automations you can reuse.

Batch rename screenshots in Finder

Finder has a built-in bulk rename feature that most people don't know about.

1. Open the folder containing your screenshots.
2. Select all the files you want to rename (Cmd+A for all, or Cmd+click for specific files).
3. Right-click and choose Rename (or Rename [X] Items).

Finder offers three rename modes:

Replace Text: Find and replace within filenames. Change "Screenshot" to "product-demo" across all selected files at once.

Add Text: Prepend or append text. Add "v2-" before every filename, or "-final" after.

Format: Apply a sequential naming scheme. Choose a base name like "onboarding-step" and Finder appends numbers: onboarding-step 1.png, onboarding-step 2.png, etc. You can set the starting number and choose whether the number goes before or after the name.

Batch rename with Terminal (more control)

For complex renaming patterns, Terminal gives you full control. Navigate to your screenshots folder and use a loop:

# Rename all screenshots to a sequential pattern
cd ~/Documents/Screenshots
counter=1
for f in *.png; do
  mv "$f" "screenshot-$(printf '%02d' $counter).png"
  counter=$((counter + 1))
done

This produces screenshot-01.png, screenshot-02.png, etc. Change the printf format to %03d for three-digit padding if you have more than 99 files.

To replace spaces with hyphens and lowercase everything:

for f in *.png; do
  mv "$f" "$(echo "$f" | tr ' ' '-' | tr '[:upper:]' '[:lower:]')"
done

Batch resize with sips (built-in)

sips (Scriptable Image Processing System) is a command-line tool that ships with every Mac. No installation needed. It handles resize, format conversion, rotation, and more.

Resize all screenshots to a specific width

# Resize all PNGs to 1200px wide (maintains aspect ratio)
sips --resampleWidth 1200 *.png

This modifies the files in place. To keep the originals, copy them first:

mkdir -p resized
cp *.png resized/
cd resized
sips --resampleWidth 1200 *.png

Resize to a specific height

# Resize all PNGs to 800px tall
sips --resampleHeight 800 *.png

Resize to exact dimensions (may distort)

# Force all images to exactly 1920x1080
sips --resampleHeightWidth 1080 1920 *.png

This stretches images that don't match the aspect ratio. For screenshots, you almost always want --resampleWidth or --resampleHeight to preserve the original proportions.

Resize Retina screenshots to 1x

Retina Mac screenshots are captured at 2x resolution. A 1440×900 display produces 2880×1800 screenshots. To halve all screenshots to 1x:

for f in *.png; do
  width=$(sips -g pixelWidth "$f" | tail -1 | awk '{print $2}')
  half=$((width / 2))
  sips --resampleWidth $half "$f"
done

Batch convert formats with sips

PNG to JPEG

# Convert all PNGs to JPEG (saves in same directory with .jpeg extension)
mkdir -p jpgs
for f in *.png; do
  sips --setProperty format jpeg "$f" --out "jpgs/${f%.png}.jpg"
done

HEIC to PNG

If you're on macOS Tahoe and your screenshots are now in HEIC format:

mkdir -p pngs
for f in *.heic; do
  sips --setProperty format png "$f" --out "pngs/${f%.heic}.png"
done

Any format to any format

sips supports conversions between these formats:

Format sips Name Notes
PNG png Lossless, large files. Default Mac screenshot format.
JPEG jpeg Lossy, small files. Best for photos and web uploads.
HEIC heic Efficient compression. Default on macOS Tahoe with HDR.
TIFF tiff Lossless, very large. Used in print workflows.
GIF gif 256 colors max. Not recommended for screenshots.
BMP bmp Uncompressed. Rarely needed on Mac.
PDF pdf Single-page PDF per image.

Batch compress screenshots

Retina PNG screenshots are large. A single full-screen capture on a MacBook Pro can be 5–10 MB. Here's how to compress them in bulk.

Reduce JPEG quality with sips

# Convert PNGs to JPEGs at 80% quality (good balance of size/quality)
mkdir -p compressed
for f in *.png; do
  sips --setProperty format jpeg --setProperty formatOptions 80 "$f" --out "compressed/${f%.png}.jpg"
done

Quality values range from 0 (smallest/worst) to 100 (largest/best). For screenshots with text, 80–90 is the sweet spot. Below 70, text starts to show JPEG artifacts.

Optimize PNGs with pngquant (free, installable)

If you need to stay in PNG format but want smaller files, pngquant reduces PNG file sizes by 50–80% with virtually no visible quality loss for screenshots:

# Install pngquant
brew install pngquant

# Compress all PNGs in the current folder
pngquant --quality=65-80 --ext .png --force *.png

The --ext .png --force flags overwrite the originals. Remove them to save compressed versions with a -fs8.png suffix instead.

Compress with Preview (no Terminal)

If you prefer a graphical approach: select all screenshots in Finder, right-click, Open With > Preview. In Preview, select all images in the sidebar (Cmd+A), then File > Export Selected Images. Choose JPEG as the format and adjust the quality slider. This isn't as fast as Terminal, but it works without any command-line knowledge.

Batch add watermarks

For screenshots you're sharing publicly — App Store listings, marketing materials, blog posts — you might want a watermark or logo on every image.

Using ImageMagick (free, installable)

# Install ImageMagick
brew install imagemagick

# Add a text watermark to all PNGs
mkdir -p watermarked
for f in *.png; do
  magick "$f" -gravity southeast -pointsize 24 \
    -fill "rgba(255,255,255,0.5)" -annotate +20+20 "© YourCompany" \
    "watermarked/$f"
done

For a logo watermark instead of text:

# Overlay a logo in the bottom-right corner
for f in *.png; do
  magick "$f" logo.png -gravity southeast -geometry +20+20 \
    -composite "watermarked/$f"
done

Adjust -gravity to position the watermark: northwest, northeast, southwest, southeast, or center.

Batch strip metadata

Mac screenshots embed metadata including your username, hostname, exact capture time, display information, and color profile. Before sharing screenshots publicly, strip this data.

Using exiftool (most thorough)

# Install exiftool
brew install exiftool

# Strip all metadata from all PNGs in the folder
exiftool -all= *.png

This removes EXIF, XMP, and ICC profile data. The original files are backed up with an _original suffix. Add -overwrite_original to skip the backup.

Using sips (basic metadata removal)

# Remove color profile (the most common metadata concern)
sips --deleteProperty profile *.png

This is less thorough than exiftool but requires no installation.

Build a reusable workflow with Automator

If you batch-process screenshots regularly, build an Automator Quick Action that you can trigger from Finder's right-click menu.

1. Open Automator and create a new Quick Action.
2. Set "Workflow receives current" to image files in Finder.
3. Add the Scale Images action. Set it to scale to 1200 pixels wide.
4. Add Change Type of Images if you want to convert format (e.g., PNG to JPEG).
5. Save the workflow with a name like "Resize Screenshots 1200w".

Now you can select any group of screenshots in Finder, right-click, go to Quick Actions, and run your workflow. It processes all selected files in one click.

For more complex automations, add a Run Shell Script action and paste any of the Terminal commands from this guide. Automator passes the selected files as arguments.

Build a reusable workflow with Shortcuts

Apple's Shortcuts app (macOS Monterey and later) can also batch-process images with a more visual interface than Automator.

1. Open Shortcuts and create a new shortcut.
2. Add Receive input from > Share Sheet > Images.
3. Add Resize Image. Set width to your target (e.g., 1200px) and height to "Auto."
4. Add Convert Image if you want to change formats.
5. Add Save File to specify the output location.
6. Toggle on "Use as Quick Action" and "Finder" in the shortcut's details panel.

The advantage over Automator: Shortcuts sync across Macs via iCloud and have a more intuitive drag-and-drop builder. The disadvantage: fewer low-level options and no direct shell script integration (though you can call a shell script via the Run Shell Script action).

Common batch operations: quick reference

Task Command
Resize all to 1200px wide sips --resampleWidth 1200 *.png
Convert PNG to JPEG sips -s format jpeg *.png --out ./jpgs/
Convert HEIC to PNG sips -s format png *.heic --out ./pngs/
Halve Retina resolution Loop with sips -g pixelWidth + --resampleWidth
Compress PNGs pngquant --quality=65-80 *.png
Strip all metadata exiftool -all= *.png
Add text watermark magick with -annotate
Rotate 90° clockwise sips --rotate 90 *.png
Flip horizontally sips --flip horizontal *.png

Tips for batch processing App Store screenshots

App Store screenshots are one of the most common reasons to batch-process images on Mac. You need screenshots across multiple device sizes, and each size has specific pixel requirements.

Device Required Size (portrait)
iPhone 6.9" (16 Pro Max) 1320 × 2868
iPhone 6.7" (15 Plus/Pro Max) 1290 × 2796
iPhone 6.5" (14 Plus) 1284 × 2778
iPad Pro 13" 2048 × 2732
Mac 1280 × 800 (minimum)

To resize a set of base screenshots to multiple device sizes:

for size in "1320x2868" "1290x2796" "1284x2778"; do
  w=$(echo $size | cut -d'x' -f1)
  h=$(echo $size | cut -d'x' -f2)
  mkdir -p "$size"
  for f in *.png; do
    sips --resampleHeightWidth $h $w "$f" --out "$size/$f"
  done
done

This creates a folder for each device size with all screenshots resized accordingly. Note that this stretches images if the aspect ratio doesn't match — you'll want to design your base screenshots at an aspect ratio that works across your target sizes, or use a tool that adds padding instead of stretching.

LazyScreenshots captures and annotates screenshots in one step — so when it's time to batch process for documentation or App Store submissions, your images are already polished. $29 one-time.

Try LazyScreenshots — $29 one-time