Exiv2 is a C++ library and a command line utility to manage image metadata. It provides fast and easy read and write access to the Exif, IPTC and XMP metadata of images in various formats. Exiv2 is available as free software and with a commercial license, and is used in many projects.
The Exiv2 library provides:
fast read and write access to the Exif, IPTC, and XMP metadata of an image, an easy to use and extensively documented API, conversions of Exif and IPTC metadata to XMP and vice versa, a smart IPTC implementation that does not affect data
Exif Makernote support:
Makernote tags can be read and written just like any other metadata, a sophisticated write algorithm avoids corrupting the Makernote, a simple interface to extract previews embedded in RAW images and Exif thumbnails, set and delete methods for Exif thumbnails