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.
It adds right click
menu items to Windows
for folders and photo files (.jpg, .jpeg). Then you can
rotate, with no quality loss:
- single images,
- all images in a folder
- all images in a
folder and in all its
to the EXIF orientation metadata (stored in photos by most digital cameras).
Tutorial video: Softoxi.com
See also: JPEG-EXIF
autorotate for Linux (KDE)
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
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).
bless your dear, sweet little website for offering me the means
by which i may now autorotate with glee! thank you for saving me
<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
- 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
works perfectly for my camera
canon powershot s5is” -alexis
- “Hi, i have tested your autorotate with Windows 7 64Bit, with
photos taken from Nikon D90. ALL SUCCESS. 64BIT works well. thanks” -congkai
I just wanted you to know that I installed it on my new Vista machine, and -Magnus Torfason
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
- Windows 2000:
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 (Thanks to Jeff T.)
time saver! Works great with windows XP Pro w/SP2 using a
Canon Digital Rebel.
thanks for the program! Works with [Windows] XP SP2 (thanks to Klaus
pix from my Canon PowerShot S400!
JPEG autorotate works perfectly on : (Thanks to Stephane Marzloff)
Windows XP SP2 (french)
Images from a Pentax Ist DS
you have created a great piece of software, used it on a
and english version of winxp + sp2 on both
used it for a digital ixus 40, canon eos 20d and 350d
(thanks to Reinout Smit)
autorotation on EXIF data – seems to work well:
UK WXP SP2. Thanks.
Dutch windows XP SP 2/Canon Powershot (Thanks to Andries)
fine/thx for the program
autorotate works with canon 350D (digital (Thanks to jan novak)
rebel/kiss) […] using
english win xp pro with sp2.
Great Proggie! THX alot! Windows XPsp2 with an (Thanks to
DMC-FX9, everything works fine! 2 thumbs up!
Your program to rotate jpg by using EXIF Info works on XP (Thanks to Dancorp)
SP2 with Canon
Thanks a lot for this program.
i used (thanks to
it with pictures taken with a canon g5, US windows xp with sp2
it works perfectly with my panasonic lumix FX7 and winXP pro (Thanks to godefroy jerphanion)
We have tested it successfully in WinXP SP2 (English)?with the (Thanks VB)
following cameras:?Nikon D70, Nikon D200, Nikon D2X.
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. (Thanks to
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)
It’s work well with images token from Minolta D5D. (Thanks to Der-Johng
Works great on my Canon Ixus 800 IS. (Thanks to Paul Papathomas)
It works great with a Lumix Panasonic FZ7. (Thanks to Raphael ALEMANY)
unsuccessfully (?): Windows 98. (Brice)
Support / Troubleshooting
Tutorial video: Softoxi.com
Apparently this still works like magic for most people. If you have
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
Possible troublemaker: Photos with no Orientation tag
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.
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
- 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.
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.
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
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
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).
- A feature to close the rotating window automatically when
finished rotating has been requested a couple of times.
Download older versions
- Rebranded as JPEG Autorotate.
- Moved project to github, please see
- 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
- 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
- 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.
- Updated jhead to version 2.6, which means that now
JPEG-EXIF autorotate also rotates the thumbnails inside
- 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.
- Updated the package with the new documentation
- Added a note in the beginning and in the end of the
(just documentation – not yet updated in the installation
- Added ‘acknowledgements’ section
— noting that jpegtran changes timestamps
— describing the true lossless rotation that JPEG-EXIF
— and noting that the orientation EXIF tag is set to ‘1’
(normal orientation) after rotation.
- Cleaned up the NSI file, fixed the name of the
application to “JPEG-EXIF autorotate”, fixed some minor
bugs, fixed errors in readme.txt
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.
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
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.
- jhead by Matthias Wandel,
- jpegtran, http://sylvana.net/jpegcrop/
- Registry edits and batch files originally by Thomas
(pages seem to have been removed)
- NSIS, Nullsoft Scriptable Install System,
- InetLoad plugin for NSIS,
- ImageMagick, Copyright 1999-2006 ImageMagick Studio LLC,
- This readme.txt, the installer script for NSIS (also
included in the installer package) and major
modifications to Thomas’ batch files by Olli
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.