Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Open Source Photography
  3. Exiv2

Exiv2

NOASSERTIONC++v0.28.8

A C++ library and command-line utility to read, write, delete, and modify Exif, IPTC, XMP, and ICC image metadata.

Visit WebsiteGitHubGitHub
1.1k stars317 forks0 contributors

What is Exiv2?

Exiv2 is a C++ library and command-line utility for reading, writing, and editing metadata in image files. It supports Exif, IPTC, XMP, and ICC metadata standards, allowing developers to programmatically access and modify embedded information such as camera settings, geolocation, and copyright details. The library solves the problem of standardized metadata manipulation across various image formats and platforms.

Target Audience

Developers working on image processing applications, digital asset management systems, photo editors, or any software requiring programmatic access to image metadata. It is also used by system integrators and researchers needing to batch-process image metadata.

Value Proposition

Exiv2 is a mature, cross-platform, open-source solution with comprehensive metadata support, thread safety, and extensive testing. It is widely adopted and offers a stable, well-documented API and command-line tool, making it a reliable choice over proprietary alternatives or less complete libraries.

Overview

Image metadata library and tools

Use Cases

Best For

  • Extracting camera settings and geolocation data from photos
  • Batch editing copyright and authorship metadata in image collections
  • Building custom digital asset management (DAM) systems
  • Integrating metadata support into cross-platform image processing tools
  • Research and analysis of embedded image information
  • Automating metadata cleanup and standardization workflows

Not Ideal For

  • Projects needing a simple GUI for metadata editing without programming
  • Real-time image processing applications where low latency is critical
  • Proprietary software that cannot comply with GPLv2 licensing terms
  • Web-based applications requiring client-side metadata handling without server integration

Pros & Cons

Pros

Comprehensive Metadata Support

Handles Exif, IPTC, XMP, and ICC metadata across many formats, including BMFF files like CR3 and HEIC via optional build configuration, as detailed in the Key Features and BMFF section.

Cross-Platform Compatibility

Builds on Linux, macOS, Windows, and various Unix systems, with extensive platform notes in the README for different environments like Cygwin and MinGW.

Thread-Safe Design

Library is reentrant for Exif/IPTC, and XMP uses mutexes for critical sections, ensuring safe use in multi-threaded applications, as explained in the Thread Safety section.

Extensive Testing Suite

Includes unit tests, bugfix tests, and fuzzing via OSS-Fuzz, with detailed instructions in the Test Suite section, demonstrating a focus on robustness and reliability.

Cons

Complex Build Dependencies

Requires external libraries like zlib, expat, and gettext, with platform-specific setup that can be cumbersome, as noted in the Dependencies and Platform Notes sections.

Limited Localization on Windows

Localization is not supported for Visual Studio builds and relies on gettext, which may hinder internationalization efforts, as mentioned in the Localisation section.

GPL License Restrictions

Licensed under GPLv2, which can be a barrier for integration into proprietary or closed-source projects, as stated in the License section.

Frequently Asked Questions

Quick Stats

Stars1,124
Forks317
Contributors0
Open Issues177
Last commit6 days ago
CreatedSince 2017

Tags

#c-plus-plus-library#exif#metadata-extraction#command-line-tool#cli#cross-platform#image-metadata

Built With

E
Expat
z
zlib
b
brotli
C
CMake
C
Conan
D
Docker
g
gettext
C
C++

Links & Resources

Website

Included in

Open Source Photography622
Auto-fetched 4 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub