exifdate: automatically rename .jpg files using the exif date information inside the image

exifdate -- rename .jpg files by using the exif date information inside the image
USAGE: exifdate [-h] [-c C][-p] filename1.jpg ...

exifdate can be used to sort and archive your various
digital images. The file names are constructed such that they
sort automatically in time order in your file manager. 
The date/time information is read out of the image exif data.

Example: exifdate *.jpg

Author: Guido Socher (homepage: http://tuxgraphics.org/~guido/ )
guidosocher (at) fastmail.fm
Copyright: Guido Socher, BSD style license, the same licence conditions
as easyexif, see easyexif/LICENSE.txt


exifdate was written to be the C++ brother of exiftimestamp It offers the same functionallity as exiftimestamp but is much easier to install on small systems as it does not require a perl installation.

exifdate requires only a very basic C++ compiler and has a very small footprint. It's very fast.

The exifparser use by exifdate is based on easyexif ( https://code.google.com/p/easyexif/ )

Pre-compiled binaries for Linux, Mac and Windows:

There are ready to use executables in the directory bin-precompiled/ If you are not sure which one to use (32bit/64bit/static/stdcpp/...) then simply try which one runs and executes on your system.

Note that I can not always update all binaries to the latest version. You might have to compile from the source code if you really want the latest version.

Linux/Mac:
cd bin-precompiled/ ./the-name-of-the-file

Windows:
cd bin-precompiled/
the-name-of-the-file

Installation (linux):

--------------- option 1) use a pre-compiled executable:

You can see if any of the files in the bin-precompiled/ 
runs on your computer.  Just copy the one that works into /usr/bin

    Example: 
    cd bin-precompiled/ 
    # test it:
    ./exifdate-linux-32bit-static-stdcpp
    # if it works then install it:
    cp -p ./exifdate-linux-32bit-static-stdcpp /usr/bin/exifdate

------------------- option 2) compile from source code:

Compile and install from source code:
type:
make
to install type (linux only):
make install

Installation (mac OS):


--------------- option 1) use a pre-compiled executable:

You can see if any of the files in the bin-precompiled/ 
runs on your computer.  Just copy the one that works into /usr/bin
and into the ./Applications/exifdate.app/Contents/Resources/ directory

    Example: 
    cd bin-precompiled/ 
    # test it:
    ./exifdate-macosX-10.8.5-intel
    # if it works then install it as exifdate in /usr/bin/:
    cp exifdate-macosX-10.8.5-intel /usr/bin/exifdate

    # copy it into the droplet exifdate.app to be able to use
    # the exifdate droplet application from the finder filemanager
    cp exifdate-macosX-10.8.5-intel ../Applications/exifdate.app/Contents/Resources/exifdate

    # To install the application bundle (exifdate.app)
    # go out of the bin-precompiled/ directory back to the top level of this
    # package and then into Applications/ :
    cd ../Applications/ 
    # recursively copy the files to /Applications on your mac:
    cp -a exifdate.app /Applications/
    # instead of using the above "cp -a" command you can as well 
    # just use the finder filemanager to drag the exifdate.app folder to the desktop or
    # into /Applications/ or wherever you want it.

------------------- option 2) compile from source code:

Compile and install from source code (mac):

You need a proper xcode g++ compiler (see https://developer.apple.com/xcode/ )
Add the /Applications/Xcode.app/Contents/Developer/usr/bin directory
to your path (unless it is already there):
export PATH=${PATH}:/Applications/Xcode.app/Contents/Developer/usr/bin

type:
make exifdate

To install the freshly compiled exifdate executable copy it into /usr/bin.
You can move the ./Applications/exifdate.app droplet application with the finder 
filemanger to wherever you want (e.g /Applications or your desktop or the left 
side bar of the finder) and then drag-and-drop images onto it in order to rename them.
The exifdate.app droplet application has a litte arrow symbol on the icon
which indicates that it is a droplet.

Installation (windows):

go with the filemanger into the directory bin-precompiled/ copy/paste the file bin-precompiled/exifdate-windows7-static-stdcpp.exe or bin-precompiled/exifdate-windows7-static.exe to your desktop. Try first the *stdcpp.exe file. Go with the filemanger into testimages/ and drop one of the images onto the exifdate icons on the desktop. If it executes properly and renames the file then the installation is done.

Using exifdate under linux and mac on the commandline (including windows 10 WSL)

I love the shell and I start everything from there (gimp, gqview,...). To use exifdate is just a matter of running:

exifdate *.jpg



That said it is as well possible to integrate exifdate with the filemanager and I explain the procedure for the case of a gnome based ubuntu system (nautilus filemanager).

The exifdate.app application bundle included in this package is a droplet. You can just drag-and-drop images onto the icon of the exifdate droplet.

Using exifdate under linux from the nautilus filemanager


First you need to build a executable that does not exit right afer running but asks the user to press enter to close the window. To compile it you can type "make exifdate-prompt-to-exit" or just "make install".

Next you need to copy the supplied exifdate.desktop file to either
/usr/share/applications/exifdate.desktop
or if you just install it for yourself
~/.local/share/applications/exifdate.desktop

cp exifdate.desktop ~/.local/share/applications/exifdate.desktop


Note: the supplied exifdate.desktop runs /usr/bin/exifdate-prompt-to-exit thus if you decided to install exifdate-prompt-to-exit elsewhere then adapt the path.
Next select the images in nautilus and then right click "open with". You should find exifdate there. If not see if you can find an open with other application entry and find exifdate there. The second time nautilus will have learned it and offers you the exifdate application at the top of the list.

This will now process the jpg image files with exifdate:


You see what exifdate did in a terminal window that opens. The terminal prints at the end a "please PRESS ENTER to continue" message.

Using the exifdate.app droplet (applicatio bundle) on Mac OSX from the finder filemanager

Select the images that you would like to rename as per exif timestamp and drag-and-drop them on the exifdate application. It does not matter where you have installed the exifdate.app (desktop, in the finder, under /Applications, ...) just drag-and-drop onto the app:



A message window will pop up and the images will be renamed accordingly:



Using exifdate under windows

You just select the images that you would like to rename with exifdate in the filemanager and then you drag-and-drop them onto the exifdate icon on your desktop. Hold them over the icon until you see the message "open wit exifdate" and then drop them.


A black text window will open and you see the images being renamed:


Note: in windows 10 you can also use the WSL (aka Ubuntu shell). Your c-drive and the files for your user are at /mnt/c/Users

Version history:

1.5, 2019-08-26: - add new option -c to insert a fixed character into the serial number portion.
1.4, 2019-07-19: - accept also files ending in .jpeg (not only .jpg)
1.3, 2019-06-08: - add binaries for windows 10
                   
1.2, 2019-01-06: - fix warning about string variable
                 - update pre-compiled linux 32bit binary

1.1, 2014-05-27: - chmod the files to 644 under linux and mac
                 - added macOS-X application Applications/exifdate.app

1.0, 2014-05-17: - initial version