In one way, Windows users have it easy: to copy a picture of their computer screen to the clipboard, all they have to do is press the Print Screen key. Mac users have to press the arcane combination Command+Shift+Control+3. Three years ago, O'Reilly's MacDevCenter discussed that technique and more in Screenshot Hacks for Mac OS X. It's an easy-to-follow tutorial, which I'll summarize below.
Since 2003, though, new developments have made capturing the Mac screen easier and more flexible. In this article, I'll look at several free programs that will pump up any screenshooter's utility belt. I'll also share a hack I developed for capturing OS X windows with custom shadows.
Table 1 shows the built-in Mac screenshot commands discussed in the "Hacks" article. The main change since then, introduced with OS 10.4 (Tiger), is that the default screenshot file format is now PNG instead of PDF. (To change the default, you can run a utility like Bruce Phillips' free Screenshot Settings.) Another Tiger change is that it's now possible to capture screenshots of individual desktop icons—complete with their titles—and Dashboard widgets (see Figure 1).
Figure 1. To take screenshots of widgets or desktop icons, use the same technique as for capturing windows: press Command+Shift+4 and then the Space bar. The cursor will turn into a camera icon. Then hover the camera over the item you want to capture and click the mouse. Oddly, this method captures a widget's shadow as well.
|Command+Shift+3||Capture entire screen and save as a file|
|Command+Control+Shift+3||Capture entire screen and copy to the clipboard|
|Command+Shift+4||Capture dragged area and save as a file|
|Command+Control+Shift+4||Capture dragged area and copy to the clipboard|
|Command+Shift+4 then Space bar||Capture a window, menu, desktop icon, or the menu bar and save as a file|
|Command+Control+Shift+4 then Space bar||Capture a window, menu, desktop icon, or the menu bar and copy to the clipboard|
One handy trick to know about when using the dragging methods (Command+Shift+4) is how the cursor crosshairs work. To delineate an exact pixel region, the cursor crosshairs should overlap the top and left edges of the area you want to capture, but extend one pixel below and to the right of it (see Figure 2). This technique works with the selection crosshairs in other applications as well.
Figure 2. When dragging out an area to make a selection, move the crosshairs one pixel farther to the bottom and right than the area you want to capture. (The image on the right is magnified 200% to show the cursor positioning.)
There are some limitations to the key commands in Table 1, such as the inability to capture cursors. For that, you can fire up Apple's Grab utility, which is explained more fully in Screenshot Hacks for Mac OS X. There are several third-party programs that offer even more features, though. As mentioned in that article, the king of all Mac screenshot utilities is Ambrosia Software's Snapz Pro—and since that article came out, Snapz Pro has gained even more features. I used it intensively for years under System 7, but never got around to ponying up the $29 for the OS X version. Instead I've been using a variety of freeware and donationware programs. I'll cover my favorites here. (See Table 2 for download links.)
One of the slickest third-party screenshot utilities is Steven Chaitoff's Screenshot Plus, which is actually a Dashboard widget (see Figure 3). In the initial window, you choose what to capture: the full screen, a selection, a window or icon, or another widget. After you take the snap, Screenshot Plus expands to show you a preview, which you can save in a variety of file formats.
Figure 3. Two views of the Screenshot Plus widget—before (top) and after (bottom) grabs. The "after" window lets you save a screenshot to the desktop or a pre-designated folder, or even export it to Photoshop.
The utility I use the most is Yellow Mug's SnapNDrag (Figure 4), which has the unique ability to offload images directly to other programs or folders without creating intermediary files. Add-on utilities let you make custom frames or crop your shots.
One challenge when taking screenshots is sweeping away the clutter that can build up on your desktop, such as icons and other windows. Left in the frame, they end up looking as ugly as telephone wires in a portrait. For instant cleanups, I keep Katsura Shareware's Screenshot Helper a keystroke away. This brilliant utility blanks the screen with a single color or the image of your choice so you can focus on the item at hand.
Another tricky situation is taking shots of long web pages that don't fit on the screen. Instead of taking multiple shots and pasting them together, I use Paparazzi!, a straightforward program that transforms almost any URL you paste into it to a screenshot. The latest version can even save the web page as a PDF with resizable text. Of course, you can also try to print the page and save the print as a PDF, but Paparazzi! is quicker and more flexible.
Figure 4. With SnapNDrag, you simply drag the screenshot preview where you want to use the image, be that a folder or another program. You don't have to monkey with saving intermediate files.
|Ambrosia Software Snapz Pro X||$29; $69 with video capture||Does everything!|
|Apple Grab||free (comes with OS X)||Captures cursors; timed captures|
|Steven Chaitoff Screenshot Plus||free||Dashboard widget; preview function; Photoshop export|
|Katsura Shareware Screenshot Helper||free/$5 donation||Creates backdrop for screenshots|
|Wevah Paparazzi!||free/donation||Captures long web pages as single files|
|Yellow Mug SnapNDrag||free||Drag screenshot preview to any application or folder|
One byproduct of the OS X window design is that Finder windows lose their borders when you collapse the title bar (see Figures 5A and 5B).
Figure 5A. When you shoot an expanded Finder window in window-capture mode, it has a meaty metallic border, although there's no drop shadow.
Figure 5B. Collapsing a Finder window's title bar removes the bottom and left borders, which makes for a strange screenshot. (The borders are normally defined by drop shadow.)
I've come up with two ways to work around that disappearing border. The first is to fire up Screenshot Helper, set the background to white, and drag-shoot the window I want plus enough blank space around it to capture the drop shadow. I then open the screenshot in my image editor (Macromedia Fireworks), select the white space with the Magic Wand tool, and delete it (see Figure 6).
Figure 6. To capture a window with its drop shadow, I drag wide and then delete the white space in my image editor.
Sometimes, though, I want to use a drop-shadowed window on a non-white background. For that, I'll shoot the window normally, then add drop shadow in the image editor. Figure 7 shows the values I came up with. They're not exactly the same as the Finder shadow, but they're close enough.
Figure 7. To add Finder-like drop shadow to a naked window, I use these values in Fireworks.
You can compare the real and imitation drop shadow in Figures 8A and 8B.
Figure 8A. True Finder drop shadow.
Figure 8B. "Aftermarket" drop shadow, created in Fireworks.
Figure 9 shows how the Fireworks drop shadow makes the same window stand out on different textured backgrounds.
Figure 9. By shooting only the raw window and adding drop shadow later, you get more design options.
If you try to use the Mac's standard Command+Shift+3 or +4 functions to capture a frame from a DVD, you'll be stymied by the following error:
Fortunately, there are several easy ways around this limitation, although they may not work on all Macs. Both the Screenshot Plus widget and SnapNDrag will capture DVD stills, although I found the quality was better with SnapNDrag (see Figure 10). The powerful Snapz Pro ($69 edition) can even capture DVD motion and audio, and save the result as a QuickTime movie.
Figure 10. Note the pixelation in the inset image, which I grabbed from a DVD with Screenshot Plus. The larger image, captured with SnapNDrag, is baby-smooth. Both shots were made at 100%.
Thanks to a coder named Jack, here's an even simpler way to grab DVD stills on the fly: paste the following line into a new AppleScript document and save the script as DVD Screenshot in the directory ~/Library/Application Support/DVD Player/Scripts.
do shell script "screencapture ~/Desktop/DVD-screenshot.png"
When you find a scene you want to grab in DVD Player, pause playback and select DVD Screenshot from the Scripts menu. The script will create a PNG image of the entire screen on your desktop and name it DVD-screenshot.png.
If you want to shoot just part of the image, create a second AppleScript document called DVD Selection Screenshot, containing the following line:
do shell script "screencapture -i ~/Desktop/dvd-select.png"
When you select that script from the DVD Player menu, you'll get the familiar crosshair cursor, which you can drag to select the area you want. Releasing the mouse button triggers the screen grab.
To capture only the window, use the following syntax:
do shell script "screencapture -iW ~/Desktop/dvd-window.png"
Oddly, I noticed that like Screenshot Plus, this method generates pixelation when using the window command.
From documenting a verbose error message to quickly assembling tutorial illustrations or even cover images for a DVD you're making, there are untold applications for screenshots. I hope this article has demystified the process and given you some ideas.
Return to digitalmedia.oreilly.com