Download now!
2.0 (257 KB)
GitHub: pull requests welcome SOFTPEDIA 100% CLEAN   
AWARD

JPEG Autorotate

Windows 2000, XP, Vista, 7, 8

Ever had the problem of pictures taken in portrait showing up in landscape in emails, on your blog or on your mobile device? JPEG Autorotate is the solution. It's quick, it's simple, it's free.

Photos from most digital cameras already contain the information needed to rotate photos the right way up. This little app uses that information to automatically make sure your photos show up correctly everywhere. No need to do this by hand anymore.

Facebook page of JPEG Autorotate


It adds right click menu items to Windows for folders and photo files (.jpg, .jpeg). Then you can effortlessly rotate, with no quality loss:

  • single images,
  • all images in a folder
  • all images in a folder and in all its subfolders

according to the EXIF orientation metadata (stored in photos by most digital cameras).

More screenshots: Softpedia Photo-Freeware.net
Tutorial video: Softoxi.com

See also: JPEG-EXIF autorotate for Linux (KDE)

Help, compatibility

Usage

Run the installer, follow the instructions.

When the installer is finished you should be able to right-click any folder or a file with .jpg or .jpeg extension. For folders, you should see the menu items "Auto-rotate all JPEGs in folder" and "Auto-rotate all JPEGs in folder and in all subfolders". For JPEG files, you should see the menu item "Auto-rotate".

Clicking any of the menu items should bring up a console, showing the progress of the auto-rotating process and telling you to "Press any key to continue . . ." when completed.

Setting timestamps of rotated files

As of version 1.2, during installation there are two choices with the "Set the timestamp of selected files to EXIF date" selection:

  • Not selected (default): jpegtran will change the timestamp of all the rotated files to the current date and time (of rotating).
  • Selected: the date of all the selected files, regardless of whether they have been rotated or not will be changed to the moment of taking the photo, according to the EXIF metadata (jhead parameter -ft).

Compatibility

bless your dear, sweet little website for offering me the means by which i may now autorotate with glee! thank you for saving me fingers! <3 <3 <3 ^_^ -melissa :)

Please send me mail about your un-/succesful attempts to use JPEG Autorotate on different Windows versions and camera models. Fan mail ;) / Reports so far:

  • Windows 7
    • "Used JPEG-EXIF autorotate, on Windows 7 RTM (final), worked absoluteley fine, no problems. Used files from a Canon EOS 450D. Thanks for such a handy tool." -Saqib
    • Windows 7 RC1 (English): "your program is really great works perfectly for my camera canon powershot s5is" -alexis
    • "Hi, i have tested your autorotate with Windows 7 64Bit, with 300 photos taken from Nikon D90. ALL SUCCESS. 64BIT works well. thanks" -congkai
  • Windows Vista: I just wanted you to know that I installed it on my new Vista machine, and it works like a charm (full disclosure, I had actually already rotated the files I tested it on, but I can't imagine any Vista-specific difficulties that would occur only on an actual rotation). -Magnus Torfason
  • Windows 2000: tested it myself, works :)
  • Windows XP:
    • Tested successfully: French Windows XP SP2. Using Canon IXUS 40. (Thanks Brice)
    • I just want to say thanks for that little program it is a time saver! Works great with windows XP Pro w/SP2 using a Canon Digital Rebel. (Thanks to Jeff T.)
    • thanks for the program! Works with [Windows] XP SP2 (Danish) and pix from my Canon PowerShot S400! (thanks to Klaus Lauritsen)
    • JPEG autorotate works perfectly on : Windows XP SP2 (french) Images from a Pentax Ist DS (Thanks to Stephane Marzloff)
    • you have created a great piece of software, used it on a dutch and english version of winxp + sp2 on both used it for a digital ixus 40, canon eos 20d and 350d (thanks to Reinout Smit)
    • JPEG autorotation on EXIF data - seems to work well: UK WXP SP2. Thanks. (Thanks to Martin)
    • Dutch windows XP SP 2/Canon Powershot G5/works just fine/thx for the program (Thanks to Andries)
    • autorotate works with canon 350D (digital rebel/kiss) [...] using english win xp pro with sp2. (Thanks to jan novak)
    • Great Proggie! THX alot! Windows XPsp2 with an Panasonic Lumix DMC-FX9, everything works fine! 2 thumbs up! (Thanks to Herve Moser)
    • Your program to rotate jpg by using EXIF Info works on XP SP2 with Canon EOS 350D Pictures. Thanks a lot for this program. (Thanks to Dancorp)
    • i used it with pictures taken with a canon g5, US windows xp with sp2 (thanks to melissa)
    • it works perfectly with my panasonic lumix FX7 and winXP pro sp2 (Thanks to godefroy jerphanion)
    • We have tested it successfully in WinXP SP2 (English)?with the following cameras:?Nikon D70, Nikon D200, Nikon D2X. (Thanks VB)
    • works well (Canon ixus 400 / Win XP) (Thanks to Jerome BARON)
    • Canon 350d (Thanks to Matthew Bailey)
  • Just wanted to drop you a line concerning the autorotate software. I seriously love it! You saved me a LOT of time! (I have a canon IXUS 50, but I also used it on other peoples' pics) (Thanks to Pepijn :)
  • It's work well with images token from Minolta D5D. (Thanks to Der-Johng Sun)
  • Works great on my Canon Ixus 800 IS. (Thanks to Paul Papathomas)
  • It works great with a Lumix Panasonic FZ7. (Thanks to Raphael ALEMANY)
  • Tested unsuccessfully (?): Windows 98. (Brice)

Support / Troubleshooting

Tutorial video: Softoxi.com

Apparently this still works like magic for most people. If you have problems getting this work though, I may not be able to help, as I don't use Windows myself anymore but Ubuntu Linux.

In addition to this, there is another one to try that seems to do similar magic: JPEG Lossless Rotator

Possible troublemaker: Photos with no Orientation tag

Some cameras do not store the orientation data at all, so JPEG-EXIF autorotate can't work at all. You can check if your photos contain the orientation data by entering a photo that should be portrait but has not been rotated yet, at exifdata.com. On the results page, scroll to the bottom of the list to find "Orientation". If the Orientation value is "Horizontal (normal)", then the file you uploaded does not contain portrait orientation data - either because it never was in the file, or because it has been cleared, for example after already having been rotated.

Possible troublemaker: Write permissions

Another common problem is that you don't have write permissions to the photos/JPEG files or to the folder containing them, so JPEG Autorotate can not change the files.

  • Some cameras do not store the orientation data at all, so JPEG-EXIF autorotate can't work at all. You can check if your photos contain the orientation data by entering a photo that should be portrait but has not been rotated yet, at exifdata.com. On the results page, scroll to the bottom of the list to find "Orientation". If the Orientation value is "Horizontal (normal)", then the file you uploaded does not contain portrait orientation data - either because it never was in the file, or because it has been cleared, for example after already having been rotated.
  • Another common problem is that you don't have write permissions to the photos/JPEG files or to the folder containing them, so JPEG Autorotate can not change the files.

Features

Note: With the default settings, all the rotated files will have their timestamp changed to the time and date at the moment of the operation. However, the datetime EXIF metadata inside the file will be preserved. You also have an option during the installation to have the app set the dates of all files to the EXIF datetime field's value. See readme.txt (below) for more info.

What does it do?

According to the EXIF orientation metadata stored in JPEG files by digital cameras, JPEG Autorotate losslessly rotates the files which are oriented wrong, usually by 90 or 270 degrees.

"I own a canon ixus digital camera, which has the ability to save the orientation the camera was in while taking the picture in tag in the exif headers of the pictures, thanks to a gravity sensor. Exif-enabled software can read this tag and display the images the right side up, but these programs are still uncommon (well, photoshop does, but the standard windows image viewer doesn't. The solution I prefer is to rotate the images in the correct direction once and for all, and then I can forget about using exif enabled software" -Thomas Bonfort, the original writer of the batch files

The graphical user interface of the application is the right-click menu items in Windows. (Clicking any one of them will launch jhead with the appropriate command line parameters in a console window.) See "Acknowledgements" below for further details.

Acknowledgements

Some might consider the optimal solution to not touch the file timestamps at all. Unfortunately with jhead this is currently not possible.

As of version 1.2, IPTC metadata will be left intact. Earlier versions deleted all IPTC metadata due to a problem in jhead.

From the jhead documentation: "After rotation, the orientation tag of the Exif header is set to '1' (normal orientation). The exif thumbnail is also rotated as of Jhead version 2.5. Other fields of the Exif header, including dimensions are untouched, but the JPEG height/width are adjusted. This feature is especially useful with newer digital cameras, which set the orientation field in the Exif header automatically using a built in orientation sensor in the camera."

In some cases, the context menu entries will not be directly under the right click menu, but in the submenu "Open with..." If you know how to force it directly in the context menu, please tell me. http://pilpi.net/contact/

From the jpegtran documentation: "The transpose transformation has no restrictions regarding image dimensions. The other transformations operate rather oddly if the image dimensions are not a multiple of the iMCU size (usually 8 or 16 pixels), because they can only transform complete blocks of DCT coefficient data in the desired way." ... "For practical use, you may prefer to discard any untransformable edge pixels rather than having a strange-looking strip along the right and/or bottom edges of a transformed image. To do this, add the -trim switch: -trim Drop non-transformable edge blocks."

The transformation is truly lossless - jhead is not using the -trim command line argument when calling jpegtran to do the actual rotating. With JPEG files coming straight out of a digital camera, I understand that the dimensions of the image dimensions usually are a multiple of the iMCU size, so no strange results should appear. Be careful when rotating "custom-sized" JPEGs though.

If you want to remove some menu items you already have installed, you need to uninstall the entire JPEG-EXIF autorotate via Control Panel -> Add/Remove Programs and then reinstall it with only the desired menu options selected.

Developer Notes

With version 1.2, the installer UI is getting a bit crowded. I couldn't be bothered to learn the relatively obscure NSIS scripting language well enough to create new option pages to move some of the options to. If you know how to achieve this or how to make the installer window bigger/resizable, please let me know :).

The compiling the installer with NSIS requires the InetLoad plugin, see credits.

The 1.2 installer also uses some files, which will not be placed "as is" to the final installation directory when using the installer: autooperateft.bat, autooperatedirft.bat and autooperatedirrecursiveft.bat These can be acquired by installing the scripts with "Set the timestamp of selected files to EXIF date" selected, and then renaming the three batch files to the above names. Of course you will also need the default versions autooperate.bat, autooperatedir.bat and autooperatedir_recursive.bat, which will be installed if you leave the above option unselected. The only difference with these two sets of files is that the _ft versions have the -ft command line parameter passed to jhead, in order to set the file dates according to EXIF metadata.

Includes jhead and jpegtran compiled for Windows. See the installation directory, for default a folder called "JPEG-EXIF_autorotate" in the "Program Files" (or equivalent in local language).

Todo

  • A feature to close the rotating window automatically when finished rotating has been requested a couple of times.

Changelog

Download older versions

Changes

Version 2.0/2013-05-21

  • Rebranded as JPEG Autorotate.
  • Moved project to github, please see commit history
  • By "popular demand", now allow users to select not to wait for user confirmation before closing window when completed rotating
  • Added new right click menu registry associations to make sure right click menu items appear on all computers

Version 1.2/2007-07-28 (Using NSIS 2.29)

  • Added an option to set the file dates to the date in EXIF date field, which is supposed to be the photo taking time/date.
  • Updated to a jhead post-2.7 head revision copy, to avoid resetting the IPTC data of rotated files. Thanks to Matthias Wandel, the author of jhead, for compiling it for me on 2007-07-25.
  • Updated the documentation (this file), added Developer Notes.
  • Tested the installer with wine on Ubuntu Linux. It works. Not that it would be any use ;).
  • Made app version number visible in the installer title bar.

Version 1.1/2006-05-06

  • Updated jhead to version 2.6, which means that now JPEG-EXIF autorotate also rotates the thumbnails inside JPEG images
  • Added a "regenerate thumbnails" feature, to fix the thumbnails of images rotated by previous versions of jhead or JPEG-EXIF autorotate. This feature uses mogrify.exe from Imagemagick. mogrify.exe is over 4 megabytes, so the installer now downloads it only if the user selects it for installation.
  • Added the URL of the JPEG-EXIF autorotate website in the beginning and in the end of the rotating process.

Version 1.03/2006-01-05

  • Updated the package with the new documentation
  • Added a note in the beginning and in the end of the rotating process

Version 1.02/2004-05-21 (just documentation - not yet updated in the installation file)

  • Added 'acknowledgements' section -- noting that jpegtran changes timestamps -- describing the true lossless rotation that JPEG-EXIF autorotate does -- and noting that the orientation EXIF tag is set to '1' (normal orientation) after rotation.

Version 1.01/2004-04-24

  • Cleaned up the NSI file, fixed the name of the application to "JPEG-EXIF autorotate", fixed some minor bugs, fixed errors in readme.txt

Version 2004-04-22

  • First release, 1.0

Credits

JPEG Autorotate is distributed as Public Domain (for the .nsi script and the batch files) Use it, edit it, distribute it if you wish, but please keep the credits below and contact me (see feedback above) if you do (any of these things =), so that I can keep track of any developments.

This software includes a jhead executable. jhead is made by Matthias Wandel and is distributed under a PD license.

This software includes a jpegtran executable, thus, this software is based in part on the work of the Independent JPEG Group.

If during the installation you chose to install the regenerate thumbnails feature, you also have mogrify.exe, which is a part of ImageMagick. http://www.imagemagick.org/ ImageMagick is Copyright 1999-2006 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available. See imagemagick_license.txt for the license of Imagemagick.

Credits

Thanks to Raquel for writing the first paragraph of the JPEG Autorotate website (as of July 2011) to make the app's purpose a bit more clear to everybody.

Background

I used to have a Konica Minolta DiMAGE Z2 camera, which lets me rotate photos, but actually it doesn't really rotate them. It just edits the EXIF orientation metadata in the JPEG file.

I found a solution by Thomas Bonfort that turned the EXIF data into a rotated photo, enhanced it to work in most Windows machines and made a Windows installer with NSIS. Uses jpegtran, jhead and ImageMagick. Some parts compressed with 7-Zip as SFX.