Exiv2 C++ library

  • Fast read and write access to the Exif, IPTC and XMP metadata of an image.
  • Easy to use and extensively documented C++ API.
  • Conversions of Exif and IPTC metadata to XMP and vice versa.
  • Smart IPTC implementation that does not affect data that programs like Photoshop store in the same image segment.
  • Exif Makernote support:
    • Makernote tags can be read and written just like any other metadata.
    • Sophisticated write algorithm avoids corrupting the Makernote.
  • Other Features:
    • Easy to use command-line utility to manipulate metadata.
    • Command-line utility provides a rich scripting interface.
    • Library and utility provide tools to debug, pipe metadata and much more.
    • Simple interface to extract Exif thumbnails.
    • Support to extract, change and remove ICC profiles.

Future plans

These are high-level goals for the Exiv2 library, see the projects for information about future projects.

  • A stable API
  • A unified metadata container.
  • Additional image formats such as BigTiff.
  • Better lens recognition.
  • More makernote support.

To learn how to use the Exiv2 library in your own programs, start by reading the short API documentation intro and study some of the examples here. Refer to the metadata taglists for supported tags and default types and the API documentation for the interface.

Exiv2 Community and Resources

The Exiv2 Project is hosted on GitHub where can interact with project members and users to get help and support, report bugs and get involved with the project.

Exiv2 GitHub

Command line utility

  • Print Exif, IPTC and XMP image metadata in different formats: Exif summary info, interpreted values, or the plain data for each tag
  • Print the structure of images. This is useful for image file analysis.
  • Set, add and delete Exif, IPTC, XMP metadata and ICC profile from command line modify commands or command scripts
  • Adjust the Exif timestamp (that's how it all started...)
  • Rename Exif image files according to the Exif timestamp
  • Extract, insert and delete Exif, IPTC and XMP metadata and JPEG comments
  • Convert from Exif and IPTC to XMP properties and vice versa
  • Extract previews from RAW images and thumbnails from the Exif metadata
  • Insert and delete the thumbnail image embedded in the Exif metadata
  • Print, set and delete the JPEG comment of JPEG images
  • Fix the Exif ISO setting of picture taken with Canon and Nikon cameras
  • Metadata and ICC Profiles can be very conveniently piped on the command-line from one image to others.

To get started with the Exiv2 command line utility, run it with the -h parameter from a terminal or cmd shell: exiv2 -h and study the samples here. For details, read the manual page.

Utility samples

The Exiv2 project is registered with Open Hub, a service that helps track and compare Open Source projects. Among other things, the good people at Open Hub provide tools for evaluating Open Source projects and communities. Their analysis is based on data gathered from the project's source code repositories. Below are the Open Hub "factoids" for Exiv2. Use these to explore what Open Hub has to say on the state of our project.