How can I stop my retina display from taking 2x sized screenshots?

Here is the most convenient solution (Taken from http://www.quora.com/How-can-I-get-my-retina-Mac-to-not-take-screenshots-that-are-too-big and modified a bit)

Use OsX embedded Automator to downsize screenshots automatically after they taken.

  1. Open /Applications/Automator
  2. Create a "Folder Action"
  3. At the top of the window, where it says "Folder Action receives file and folders added to", select "Desktop"
  4. From the panel on the left, select "Files & Folders" and drag the item "Filter Finder Items" to the right panel.
  5. Add the following conditions to the Filter Finder Items action: Name begins with "Screen Shot"; Kind is image.
  6. (Optional step: if you want to keep copy of originals) - From the Actions list on the left, find "Copy Finder Items" and drag it to the panel on the right. Set the destination folder for the image copy (for example: "To: Pictures")
  7. In the Actions library on the left, click on "Photos" and drag the "Scale Images" action to the right panel.
  8. In the Scale Images action, select "By Percentage" from the drop-down and set the value to 50.
  9. Select File > Save and give the Folder Action a snappy name like "Smaller Screenshot Copy"

screenshot

Here is saved workflow file

This is how I handle it. It's convoluted, but it works, and doesn't interrupt my screen-grab -> paste workflow wildly... I just screengrab, call an alfred workflow, and then paste.

CMD-CTRL-SHIFT-4 will capture a section of the screen. That section is copied to the OSX clipboard. Then I launch a script in terminal to save the clipboard contents to a temporary file, resize by half (72 dpi is half of 144 dpi), and copy the image back to the clipboard. This requires the use of several utilities - if someone knows of a way to accomplish this same feat with one simple utility please let me know.

I launch this script from Alfred to make it easy to get to:

#!/bin/bash
pngpaste /tmp/ss.png
width=$((`sips -g pixelWidth /tmp/ss.png | cut -s -d ':' -f 2 | cut -c 2-` / 2))
sips -Z $width /tmp/ss.png
impbcopy /tmp/ss.png

pngpaste is on github: https://github.com/jcsalterego/pngpaste. sips comes with OSX. impbcopyis here: http://www.alecjacobson.com/weblog/?p=3816

LifeHacker had an article on sips http://lifehacker.com/5962420/batch-resize-images-quickly-in-the-os-x-terminal that I referenced, as well as this gist: gist.github.com/lanceli/4966207.

For Alfred, I just made a workflow that runs this as a bash script:

/Users/yourusername/bin/shrink_clipboard > /dev/null 2&>1

Two workarounds:

  1. If you have a non-Retina external monitor, drag the application window there and take the screenshot. That's what I do most of the time.

  2. This only works in browsers. Press ⌘CMD+- a couple of times to shrink your font to 50%, then screencap.

For instance:

enter image description here

Obviously the layout may change a bit, but it may be ok depending on your needs.

Your best bet is to use a third party utility like RetinaCapture.

This is quite cumbersome to use, but gives you what you're looking for, and provides the option for generating both 1x and 2x screen captures at the same time, which is helpful if you're building a website:

enter image description here

enter image description here


I expect that there is a setting somewhere to do this (com.apple.screencapture seems the best candidate); but I can't find it.

  1. Take screenshot.
  2. Paste screenshot into Evernote.
  3. Copy screenshot from Evernote.
  4. Paste screenshot where intended.

If you are looking for a simple one time solution you can change image size in Preview app (taken from here):

  1. Open the Screenshot in Preview
  2. Select “Adjust Size…” from the Tools menu
  3. Change the Width and Height to 50 percent of the original
  4. Change the Resolution to 72 pixels/inch

Btw, you can see image metadata (dpi, size, etc.) in the Preview app as well, just click Tools > Show Inspector (taken from here).

I used a hybrid of Dan Key and JustinParker's answers and created an Automator workflow that executed a bash script.

Automator workflow

This makes a copy of the original file, and it also accepts multiple inputs. Simply export as an application and then drag-and-drop anything into it to get a "non-retina" version of it at 72ppi and half the pixel resolution.

The bash code is:

for f in "$@"
do
    width=$((`sips -g pixelWidth "$f" | cut -s -d ':' -f 2 | cut -c 2-` / 2))
    sips -s dpiHeight 72.0 -s dpiWidth 72.0 -Z $width "$f"
done

When you say your screenshots "end up" twice the size, I suspect you're sending them to people who are viewing them on non-retina displays. If so, that's to be expected – the pixel density on your display is higher, so when they view a screenshot taken from your machine on theirs, it'll appear physically larger.

One workaround for this, if you're sending the screenshots via OS X Mail, is to set the Image Size setting for attached images to "Large" instead of "Actual Size." That'll scale down the attached image such that it'll appear "normal" when viewed on a non-retina display.

Right Click Automator Workflow Service

There are some great answers here, but I wanted something a little more optional and a little less automatic.

I created a new Service in Automator called Create Non-Retina Version which can be called from right clicking on any image file in Finder.

Here's how it's used:

1. Find retina image.

enter image description here

2. Right click on retina image and find our new Service at the bottom.

enter image description here

3. Non-Retina (50% scaled) image gets generated.

enter image description here

The Result

Default Image:

enter image description here

Non-Retina Image:

enter image description here

The Automator Workflow

It's easy enough to create yourself (man, Automator is a hidden and neglected gem in MacOS) but here is the workflow that you can download and double click to install.

Create Non-Retina Version Workflow