exiftran - transform digital camera jpeg images


exiftran [options] file1 file2 ... fileN
-i [transform options] [others options] file1 file2 ... fileN
-o outputfile [transform options] [other options] inputfile
-d file1 file2 ... fileN > exifinfo


Exiftran is a command line utility to transform digital camera jpeg images. It can do lossless rotations like jpegtran(1), but unlike jpegtran(1) it cares about the EXIF data: It can rotate images automatically by checking the exif orientation tag; it updates the exif informations if needed (image dimension, orientation); it also rotates the exif thumbnail. It can process multiple images at once.



Automatic (using exif orientation tag).


Rotate by 90 degrees clockwise.


Rotate by 180 degrees clockwise.


Rotate by 270 degrees clockwise.


Mirror image vertically (top / bottom).


Mirror image horizontally (left to right).


Transpose (across UL-to-LR corner).


Transverse (across UR-to-LL corner).


Don’t transform exif thumbnail.


Don’t transform jpeg image. You might need this or the -nt option to fixup things in case you transformed the image with some utility which ignores the exif thumbnail. Just generating a new thumbnail with -g is another way to fix it.


Don’t update the orientation tag. By default exiftran sets the orientation to "1" (no transformation needed) to avoid other exif-aware applications try to rotate the already-rotated image again.


Don’t pare lost edges. By default exiftran don’t preserve image size of the images that do not meet a multiple of 8 pixels. He prefers to cut a strip of a few pixels rather than offering a damaged image. Use this option if you want them all the same.



Print a short help text.


Dump exif data for the file(s).

-c text

Set jpeg comment tag to text.


(re)generate exif thumbnail.

-o file

Specify output file. Only one input file is allowed in this mode.


Enable in-place editing of the images. Exiftran allows multiple input files then. You must specify either this option or a output file with -o for all operations which modify the image (i.e. everything but -d right now).


Create a backup file when doing in-place editing (imply -i).


Preserve timestamps (atime + mtime) when doing in-place editing (imply -i).


Autorotate all jpeg files in the current directory:

exiftran -ai *.jpeg


exif(1), exiftags(1), jpegtran(1)


Gerd Hoffmann <gerd [AT]>


Copyright (c) 2002-2012 Gerd Hoffmann <gerd [AT]>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.