How to automatically rotate images based on EXIF data?
I know how to do it manually. Now I would like to automate that based on EXIF data.
I already have exiftool
installed, but looks like it can only read the data, but can not rotate the image.
There is a similar question on SU about Ubuntu. But I'm looking for possible solutions using OSX.
Solution 1:
You can use nconvert
, which is freeware (for private and educational use) and available for Win, Linux and Mac.
This tool can rotate JPEG images lossless according to the EXIF orientation tag:
nconvert -jpegtrans exif -o 'rotated_%.jpg' *.jpg
That command will batch convert all JPEG files in the current directory and prepending their names with rotated_
. This is controlled by the -o
option, refer to nconvert -help
for more possibilities:
-o filename : Output filename
Use # to specify position of numeric enumerator
Use % to specify source filename
Use $ to specify full source pathname
Use $$ to specify source folder name
Solution 2:
You may use the free jhead (which itself uses jpegtran).
To fix a picture named "image.jpg" just type :
jhead -autorot image.jpg
To fix all JPGs having EXIF data in the current folder use :
jhead -autorot *.jpg
If once rotated the thumbnail icons do not show correctly, you could refresh them by :
- Create a new folder (keep the untitled name)
- Move the affected images into the folder
- Using Column View, move the images back into the original folder
- Delete the empty untitled folder
Solution 3:
This is not a scripted solution. I like this way as it allows me to change another aspects of the photos in one step.
Possible simple solution is to use Google Picasa.
After adding pictures in, all photos are autorotated for displaying. If the picture should be autorotated in the file, it is enough to push the save button on the picture folder. This will save all pictures in the folder with corrected rotation. Picasa is available for OS X as well and runs in Linux under Wine.