Exiv2 comprises of a C++ library and a command line utility to access
image metadata.

The Exiv2 library provides

 - Full read and write access to the Exif and Iptc metadata of an
   image through Exiv2 keys and standard C++ iterators (Example1,
   Example2, Example3, Example4)

 - A smart Iptc implementation that does not effect data that programs
   like Photoshop store in the same image segment

 - Exif MakerNote support
     - MakerNote tags can be accessed just like any other Exif metadata
     - A sophisticated write algorithm avoids corrupting the MakerNote.
     - New camera make/model specific MakerNotes can be added to the
       library with minimum effort in OO-fashion (by subclassing
       MakerNote or IfdMakerNote)

 - Extract and delete methods for Exif thumbnails (both, Jpeg and Tiff
   thumbnails)

 - Set methods for Exif thumbnails (Jpeg only, Tiff thumbnails can be
   set from individual tags)

 - Complete API documentation (by Doxygen)

 - Generic lower-level classes to access Ifd (Image File Directory)
   data structures

Exiv2 is also a command line utility to

 - Print the Exif metadata of Jpeg images as summary info, interpreted
   values, or the plain data for each tag.

 - Print the Iptc metadata of Jpeg images

 - print the Jpeg comment of Jpeg images

 - set, add and delete Exif and Iptc metadata of Jpeg images

 - adjust the Exif timestamp

 - rename Exif image files according to the Exif timestamp

 - extract, insert and delete Exif metadata, Iptc metadata and Jpeg
   comments

 - extract, insert and delete the thumbnail image embedded in the
   Exif metadata

