My Nikon D2Xs has an orientation sensor, so if I take a vertically-oriented photo, that information gets placed in the EXIF data in the JPEG file. Depending upon my viewing software, I may be presented the photo horizontally, or in the correct vertical orientation. Since I often am looking to do batch processing of all the files taken at a particular event, it would be nice if the EXIF data could be applied before making resized pictures, where I may need to manually rotate three versions of the original.
Enter JPEG-EXIF AutoRotate, a software package that brings together several utilities to do this job. When installed, this adds several options to the context menu under Win32 operating systems. One can ask for a file to be rotated, or selected files, or selected folders, possibly including subfolders. Best of all, the rotation is performed without incurring a loss due to JPEG de-compression/re-compression cycles. So now, at least with my most recent camera, I can reduce some of the workflow: download, autorotate, then run my resize script.
The only thing better would be if they included a way to invoke it from the command line. I haven’t dug through all of that site, though, so maybe they mention something of the sort there.
Something else that would be useful would be if someone could do the same job for Mac OS X and Unix systems.
Update: I should have noticed that a command prompt pops up when autorotation is selected from the context menu. I still apparently need to either copy the relevant executable files to somewhere in my path, or set the path to include their current installation directory, but I feel I’m close to having that working.
Update: The elements of doing this via the command line are there. Three utilities, “jhead”, “jpegtran”, and “mogrify” from ImageMagick are installed by the software I linked above. The context menu items launch batch files. The relevant command for autorotate of all JPEGs in a directory is then:
“C:\path to\jhead” -autorot -ft “dir with jpeg files”\*.jpg
So now I have this incorporated into my general resize batch process. It launches autorotate, then handles resizing, normalizing, and unsharp mask at three different final image sizes.