Marko Mäkelä’s software projects: Utilities for Managing Digital Photographs


pHoToMoLo is a toolset for managing JPEG images in JFIF or Exif format.

generates a static HTML and CSS based multi-resolution image gallery for a directory tree containing images
losslessly compresses and corrects the orientation of Exif JPEG images.
removes or embeds thumbnails to reduce file size or to speed up programs that make use of embedded thumbnails
lets you edit embedded image comments using any text editor and image viewer

This is the primary distribution site for my digital photography utilities. See also the project page.

Please read the release notes for version 1.3 and the change log.


I originally developed this software package in order to transform my wedding pictures into an easily browseable format that can be viewed from read-only media.

Precompiled Binaries

System Package Built by Remarks
Debian GNU/Linux sarge main Andreas Hirczy
Win32 Marko Mäkelä No installer; compiled on Windows XP SP2 with MinGW
Mac OS X photomolo-1.2.3.dmg Thomas Kaiser Installed under /usr/local

Source Code

Added the option -j for multi-threaded operation on other platforms than Win32. Fixed a bug in photomolo -J that was introduced in release 1.2.5.
Added option -V for displaying the version number. Added exifiron and jpegnail option -w for overwriting the original files. Fixed a bug in exifiron -E.
Added option -P to indicate progress. Added photomolo options for creating a separate thumbnail directory tree with links to the original files and for invoking an external conversion program to handle other than JPEG images.
Source code distribution 1.2.3 (improved tolerance of erroneous Exif data in exifiron, improved the HTML generated by photomolo, allow jpegnail to embed precomputed thumbnail images)
Source code distribution 1.2.2 (more robust handling of errors in Exif data, Win32 rename() bug fix)
Source code distribution 1.2.1 (fixed a bug in comment handling of jpegcom, cleaned up all code)
Source code distribution 1.2 (added the jpegnail utility, improved photomolo and exifiron)
Source code distribution 1.1.1 (added exifiron options -s and -S for saving output in separate directories, and added a sample exifiron front-end script photocopy), and corrected a fatal bug introduced in the Win32 version of photomolo 1.1.
Source code distribution 1.0.1 (added the exifiron utility)
Source code distribution 1.0

Helper Scripts

The following scripts are in the public domain. You may find them useful.

This simple Bourne shell script frontend for exifiron copies images from removable storage, such as Compact Flash cards or USB attached storage.
This Bourne shell script for exifiron and GNOME copies images when a removable storage medium is inserted, such as Compact Flash cards or USB attached storage.
This Nautilus script renames files of the form name.jpg: comment to name.jpg and embeds comment in them. This script provides an easy mechanism for entering image comments in Nautilus:
  1. rename the files (select them one at a time, press F2 and type in the file name and comment),
  2. select all files and run the script, and
  3. refresh the directory listing.
This script is trivial to adapt to any environment where image files can be renamed. The drawback of entering image comments in file names is that many filesystems have relatively short maximum file name length. On the Linux ext3 file system, it is 255 bytes, while a JPEG COM marker can be up to 64 kilobytes long. Also, file managers may have problems displaying very long file names.
This Nautilus script converts Nautilus notes (in file properties) to image comments. This is not very useful, since there does not seem to be an easy way to remove the notes once the conversion has taken place. Furthermore, in Nautilus it is much harder to access and edit the notes than to rename files.
This dcraw wrapper script converts a raw digital photograph to JPEG format. The script is intended for use with photomolo -J.
This Ghostscript wrapper script converts the first page of a Postscript or a PDF document to a JPEG image. The script is intended for use with photomolo -J.