Picasa has been my favorite image organizer and viewer for more than a decade. It is a small and lightweight program - and it is really fast, especially when managing huge image collections over a network share.

Now, more than 5 years after Picasa has been abandoned by Google, I have finally found a replacements: XnView. While all the commercial programs that I evaluated had thousand of features (that I don’t need), XnView seems to be the only one that sufficiently covers my requirements:

  • read and write IPTC/XMP metadata (image caption and tags)
  • read image GPS locations
  • manage huge image collections over a network share
  • available for both Windows and Linux

JPEG Image Metadata

Many applications use their own internal database to store image metadata like (in my case) image caption and image tags. While this is ok for performance reasons, it is important for me that these data are also written to the image itself so that the information is available to other applications.

Here is an overview about the metadata fields used by Picasa, XnView, and the built-in Windows 10 viewer:

Field Picasa 3.9 XnView 0.97.1 Windows 10
Caption IPTC:Caption-Abstract
XMP:Description
IPTC:Caption-Abstract
XMP:Description
XMP:Description
XMP:Title
EXIF:ImageDescription
EXIF:XPTitle
Tags IPTC:Keywords
XMP:Subject
IPTC:Keywords
XMP:Subject
XMP:HierarchicalSubject
XMP:Subject
XMP:LastKeywordXMP
EXIF:XPKeywords
Comment n/a File:Comment EXIF:XPComment
Headline n/a XMP:Headline EXIF:XPSubject
Rating n/a XMP:Rating
XMP:RatingPercent
XMP:Rating

Multiple tags are separated by “, ” (Windows uses “;” on the “EXIF:XPKeywords” field)

Notes on Xnview v0.97.1

  • Carefully check the “Browser -> Metadata” section of the settings:
    • On “IPTC & XMP” settings, make sure that all “Import” and “Export” checkboxes are selected
    • If “Write comment in XMP” is checked, comments are additionally written to “XMP:Description” (replacing the image caption) and “XMP:UserComment”
    • On the “Encoding” page, use UTF-8 everywhere
  • On Windows, the IPTC fields are not written by default. This can be enabled in the “Edit ITPC/XMP” dialog by changing the “mode” to “XMP, update or create IPTC-IIM”
  • The encoding of special chars (like umlauts) in the “File:Comment” fields seems to be broken on Windows
  • “Search” and “Quick search” seems to ignore most XMP fields; IPTC fields are searchable

Tools

jhead: Exif Jpeg header manipulation tool

I use Jhead on Linux and Windows to modify image files based on their EXIF data. For example, this changes the filenames and file dates of all images to the image date and time:

find my_images/ -name "IMG_*.jpg" | xargs -d '\n' jhead -ft -n%Y%m%d-%H%M%S 

ExifTool

ExifTool can read and write all EXIF, IPTC, and XMP fields.

  • Install: sudo apt install libimage-exiftool-perl
  • Show all fields of a single file: exiftool -m -s -G my_picture.jpg
  • List all files with their caption and tags: exiftool -m -r -q -p '$directory/$filename - caption: $XMP:Description - tags: $XMP:Subject' my_images/
  • Export tags of all files to CSV: exiftool -m -r -q -csv -IPTC:Caption-Abstract -XMP:Description -IPTC:Keywords -XMP:Subject my_images/ > images.csv

Note for Windows users: use -charset cp437 or -charset cp850 for correct umlaut encoding.

comments powered by Disqus