PrintEXIF Script v3.0

PrintEXIF, a Photoshop script that started as an adaptation of a script I found on a DPReview forum, has taken on a life of its own. For those unfamiliar with PrintEXIF, the script was written (in JavaScript) to prepare an image for display on the Web by “framing” the image and “printing” its EXIF information (shooting data) into the bottom of the frame. Why do this? When photographs are posted on photography forums, forum readers frequently ask, “What aperture and shutter speed did you use?”, “What ISO?”, “Which lens and what focal length?” You get the idea. So to answer those questions, PrintEXIF can be used to put that information into the photograph itself.

Originally written to work in Adobe® Photoshop® CS, my earlier versions (v1.0 – 2.0) updated the script to work in CS2, added a user interface with Adobe’s ScriptUI, and added features like the selection of fonts and colors, logos, font sizes, and the position for the signature/copyright. More recently, I updated the script (v2.1) to work in CS3. But from the beginning, PrintEXIF was mainly used by Nikon shooters due to its dependence on Nikon Transfer, the software used to transfer images from a CF card to the computer. Nikon Transfer provided an option to write the shooting data, including some that isn’t in the standard EXIF, to the IPTC Caption field. So PrintEXIF read the IPTC Caption and extracted that shooting data. Since Nikon Transfer is specific to Nikon cameras, Canon shooters found PrintEXIF to be of limited use. And as more and more Nikon shooters adopted workflows that relied on applications other than Nikon Transfer to transfer their images from CF cards, the script has become less useful to them (and to me).

Following the engineer’s credo, “If it ain’t broke, it must need fixin'”, I’ve been working on a complete re-write of the script to improve the GUI, make it independent of Nikon Transfer (and more useful to Canon shooters), and add features like resizing, sharpening, saving and the ability to remember frequently used settings. The GUI needed work to simplify and clarify selections, and to give the script the ability to recognize system fonts. And there were features that proved to be of little use, like adding a logo to the bottom frame. I’ve also had an interest in geotagging my photographs with GPS data, so that the photo carries with it a record of where it was taken. Several GPS accessories have become available in the past year or two that make this possible both directly (as the shot is taken) or in post-processing. So I wanted PrintEXIF to have the capability of extracting GPS data (if available) from the EXIF information and print that location data in the frame.


In a nutshell, PrintEXIF v3.0 adds the following improvements:

  • Resizing to a new maximum dimension, in pixels
  • Sharpening using USM, with amount, radius and threshold entered by the user
  • Copyright/signature simplified so only the photographer’s name need be entered
  • Script recognizes all fonts installed on the system (Mac or Windows)
  • Copyright/signature, title, and EXIF data can be “printed” in different fonts, sizes and colors, all selectable by the user
  • Script remembers user preferences so they don’t have to be re-entered each time the script is invoked
  • Lens list has been updated with current Nikon (including the new lenses Nikon will introduce in November) and Canon lenses
  • Standard EXIF is used and the script no longer looks for data in the IPTC Caption field (no need for Nikon Transfer)
  • GPS coordinates and altitude, if present, are retrieved from EXIF and printed in the frame
  • Data is formatted in the frame for consistency between cameras and for readability
  • Image can be saved as a JPEG, with quality entered by the user
  • No script customization is required since all options are entered or selected in the UI
  • Several bugs were fixed

The following features were removed:

  • Logos
  • Automatic calculation of font sizes

Since the specific lens that is used in a photograph is not a standard EXIF data item, that information must be selected by the user from a drop-down list. Previously, the script relied on Nikon Transfer to make the lens information available. The drop-down list includes both Nikon and Canon lenses. If I’ve missed lenses that you’d like to see in the list, contact me.

The script will work in Adobe Photoshop CS2 and CS3, on a PC (Windows) or Mac (OS X), and should be installed in the Program Files>Adobe>Adobe Photoshop CS3>Presets>Scripts folder (Windows) or Applications>Adobe Photoshop CS3>Presets>Scripts folder (Mac OS X). If you have any comments, questions or bug reports, please contact me.

Tip – Uncheck the “Save as…” box and run the script until you have the font sizes and other settings where you want them. You can go back to the beginning in the History palette each time you re-run the script. Once you get the settings where you want them, check the “Save as…” box and save the file. Voilà!

Tip – The default font size settings are optimized for an 800-pixel image size and fonts like Century Gothic (for the title) and Tahoma (for the copyright and EXIF data). If you choose a different image size, size the fonts proportionally as a starting point. For example, if the new image size is 600 pixels, and the EXIF font size was 12-point, try a 9-point font size initially (and adjust the title and copyright fonts similarly).

Here’s an example of a photo prepared using PrintEXIF v3.0. In this example, the GPS information is displayed, and the photo is a link, so you can click on the photo to see where it was taken (using Google Earth). The link creation is not a PrintEXIF feature, however.


Adobe and Photoshop are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.

This entry was posted in Uncategorized and tagged , , , , , , , .