Why your Mac screenshots are twice the size you expect

Every Mac with a Retina display captures screenshots at 2x resolution. When you screenshot a 1440×900 desktop, the actual file is 2880×1800 pixels. macOS does this so your screenshots look sharp on high-DPI screens, but it causes real problems when you drop them into documentation, Slack, GitHub issues, or a README.

The image renders at full pixel dimensions in most contexts. A screenshot of a small button becomes a massive image that dominates the page. Your Google Doc suddenly has a 5000px-wide image in the middle of it. Your Markdown documentation shows screenshots that are comically oversized unless you manually add width attributes to every image tag.

Understanding DPI vs. pixel dimensions

Two separate values control how a screenshot appears: pixel dimensions (how many pixels wide and tall) and DPI metadata (how many dots per inch the image claims to be). macOS saves Retina screenshots at 144 DPI with 2x pixel dimensions. A non-Retina screenshot is 72 DPI at 1x pixels.

The confusion: most apps ignore DPI metadata entirely. Slack, GitHub, Notion, and web browsers render images based on pixel dimensions alone. So your 144 DPI metadata is meaningless — the image still shows up huge because it has 2x the pixels. The only apps that respect DPI are print-oriented tools like Preview, Pages, and Word.

This means there are two different problems to solve depending on where your screenshots end up:

Destination Problem Fix
Web, Slack, GitHub, Notion Image is 2x too large (pixel dimensions) Resize pixels to 1x
Print docs (Pages, Word, PDF) Image prints at wrong physical size Change DPI metadata
Markdown / HTML docs Image renders huge unless width is set Resize pixels or add width attribute

Method 1: Resize pixel dimensions with sips (Terminal)

The fastest way to fix a Retina screenshot is sips, a command-line image tool built into macOS. No install required.

Resize a single screenshot to half its width (1x equivalent):

sips --resampleWidth 1440 screenshot.png

This modifies the file in place. Replace 1440 with whatever 1x width you want. To get the current dimensions first:

sips -g pixelWidth -g pixelHeight screenshot.png

Batch resize every screenshot in a folder:

for f in ~/Desktop/Screenshot*.png; do
  w=$(sips -g pixelWidth "$f" | awk '/pixelWidth/{print $2}')
  sips --resampleWidth $((w / 2)) "$f"
done

This halves the width of every file matching the Screenshot pattern, which is exactly the 2x-to-1x conversion you need.

Method 2: Change DPI metadata only (for print)

If your screenshots go into print documents and you want them to display at the correct physical size without changing pixel count, change the DPI metadata:

sips -s dpiWidth 72 -s dpiHeight 72 screenshot.png

This tells apps like Pages and Word that the image is 72 DPI instead of 144. The image will render at twice the physical size in print-aware apps, which matches the 1x display size you actually intended. The pixel data stays identical.

Method 3: Use Preview to resize

If you prefer a GUI approach, Preview works fine. Open the screenshot in Preview, go to Tools → Adjust Size. You'll see the current dimensions (e.g., 2880×1800). Change the width to half (1440) and make sure "Scale proportionally" is checked. Save.

You can also change the DPI here: set Resolution from 144 to 72, but uncheck "Resample image" first if you want to change only the metadata without modifying pixels.

Method 4: Automate with a macOS Shortcut

For a zero-friction workflow, create a macOS Shortcut that automatically resizes Retina screenshots when you run it:

  1. Open the Shortcuts app
  2. Create a new shortcut
  3. Add "Get Contents of Folder" — point it at your screenshot save location
  4. Add "Filter Files" — filter by name contains "Screenshot" and date added is today
  5. Add "Resize Image" — set width to 50% of the original
  6. Add "Save File" — save back to the same location, replacing the original

You can trigger this shortcut from the menu bar or assign it a keyboard shortcut. For fully automatic resizing, combine it with a Folder Action that runs whenever a new file is added to your screenshot directory.

Method 5: Capture at 1x resolution from the start

You can force macOS to capture screenshots at 1x (non-Retina) resolution, avoiding the problem entirely. The trick is using the screencapture command with the -R flag to capture a specific pixel region:

# Capture a 1440x900 region starting at top-left
screencapture -R 0,0,1440,900 screenshot.png

However, this still captures at Retina density. To truly get a 1x capture, you need a third-party tool or a post-capture resize step. There is no built-in macOS flag for non-Retina screenshot capture on a Retina display.

The right dimensions for common destinations

Destination Recommended width Why
GitHub README / issues 800–1200 px GitHub renders Markdown images at container width (~800px), larger wastes bandwidth
Slack messages 800–1000 px Slack previews are small — anything over 1000px just slows loading
Notion / Google Docs 1200–1440 px Wider content area, but still no need for full Retina dimensions
Blog posts / documentation sites 1200–1600 px Balances sharpness with file size for web delivery
AI coding assistants (Claude, Cursor) 1440–2000 px AI models benefit from readable text, but full Retina is still overkill

Automating the entire workflow with a shell function

If you deal with Retina screenshots daily, add this to your .zshrc:

# Resize all Retina screenshots to 1x
fix-retina() {
  local dir="${1:-.}"
  local count=0
  for f in "$dir"/*.png; do
    [ -f "$f" ] || continue
    local w=$(sips -g pixelWidth "$f" | awk '/pixelWidth/{print $2}')
    local dpi=$(sips -g dpiWidth "$f" | awk '/dpiWidth/{print $2}')
    if (( $(echo "$dpi > 100" | bc -l) )); then
      sips --resampleWidth $((w / 2)) "$f" > /dev/null 2>&1
      ((count++))
    fi
  done
  echo "Resized $count Retina screenshot(s) to 1x in $dir"
}

Run fix-retina ~/Desktop and it finds every PNG with DPI above 100 (Retina) and halves the width. Non-Retina screenshots are left untouched.

Why this matters for developer documentation

If you write documentation, README files, or tutorials, Retina screenshots are a constant source of friction. Every image needs manual resizing or explicit width attributes in your Markdown or HTML. Miss one and your docs have a random giant image that breaks the reading flow.

The best approach is to fix the problem at capture time rather than at embed time. Either resize automatically with a Folder Action or Shortcut, or use a screenshot tool that lets you control the output resolution before saving.

LazyScreenshots captures, annotates, and auto-pastes into Claude, Cursor, and ChatGPT in one keystroke. No file management, no resizing dance. $29 one-time.

Try LazyScreenshots — $29 one-time