gitwtfhub

wtf is exiv2?

ql-win/exiv2 — explained in plain English

Analysis updated 2026-07-25 · repo last pushed 2025-01-02

7C++Audience · developerComplexity · 3/5StaleLicenseSetup · moderate

TL;DR

A C++ tool and library for reading, writing, and modifying hidden metadata inside image files like photos. It handles common standards like Exif, IPTC, XMP, and ICC profiles.

Mindmap

mindmap
  root((repo))
    What it does
      Read and write metadata
      Command-line tool
      C++ developer library
    Metadata standards
      Exif camera data
      IPTC captions and keywords
      XMP Adobe labels
    Tech stack
      C++
      CMake build system
      Cross-platform
    Use cases
      Remove GPS for privacy
      Display camera settings
      Attach copyright data
    Audience
      Photographers
      Photo app builders
      News organizations

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

A photographer could batch-remove GPS coordinates from photos before sharing them online to protect their location privacy.

REASON 2

A photo-sharing startup could embed the library to automatically extract and display camera settings alongside user uploads.

REASON 3

A news organization could use it to ensure every photo has proper copyright and caption metadata attached before publication.

REASON 4

A developer could build a custom app that reads and writes hidden tags in image files without building that capability from scratch.

What's in the stack?

C++CMake

How it stacks up

ql-win/exiv20x-shadow/crewtrackgingerbreadfork/wolf3d-path-traced
Stars777
LanguageC++C++C++
Last pushed2025-01-02
MaintenanceStale
Setup difficultymoderatemoderatehard
Complexity3/53/55/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires compiling from source with CMake, and support for modern formats like HEIF and JPEG XL is disabled by default and must be explicitly enabled.

You can use and modify this software freely, but if you distribute your changes or build a product on top of it, you must also release your source code under the same open-source license.

Wtf does this do

Exiv2 is a tool that lets you read, write, and modify the hidden metadata embedded inside image files. Every time you take a photo with a camera or phone, invisible text tags are saved alongside the picture, things like the date, camera model, GPS location, and copyright information. This project provides both a command-line program for everyday users to view or strip this data, and a developer library for programmers who want to build apps that manage photo information. The tool works by parsing several common metadata standards: Exif (camera-specific data like lens settings and GPS), IPTC (photojournalism tags like captions and keywords), XMP (Adobe's modern labeling system), and ICC (color profile information). You can point the command-line program at an image file to print out all its hidden tags, or use it to add, change, or delete specific entries. Developers can integrate the library directly into their own C++ applications to handle metadata automatically, without building that capability from scratch. Anyone who works with large collections of photos could benefit from this. A photographer might use it to batch-remove GPS coordinates before sharing images online, protecting their privacy. A photo-sharing startup could embed the library into their app to automatically extract camera settings and display them alongside user uploads. A news organization might use it to ensure every photo has the proper copyright and caption metadata attached before publication. The project is built in C++ and runs across Windows, macOS, and Linux. It relies on a build system called CMake to compile, and can optionally pull in a few external libraries for features like PNG support or text translation. One notable design choice is that support for newer image formats like HEIF and JPEG XL is disabled by default, meaning users who need to handle those modern formats have to explicitly enable that feature during setup. The project is open source under the GPLv2 license.

Yoink these prompts

Prompt 1
I want to build a C++ app that reads the camera model and GPS location hidden inside JPEG photos using exiv2. Help me set up the CMake configuration and write the code to print out this metadata for a given image file.
Prompt 2
Help me compile the exiv2 library from source on my machine so I can use the command-line tool to print all hidden tags from a photo. Walk me through the CMake build steps for my operating system.
Prompt 3
I need to write a C++ program using exiv2 that strips all GPS metadata from a folder of images to protect user privacy. Show me how to iterate through the files and delete the GPS tags.
Prompt 4
I want to use the exiv2 command-line tool to add copyright information and a caption to a batch of photos before publishing them. Show me the commands to set IPTC tags on multiple files.
Prompt 5
I am building a photo gallery app and want to use exiv2 to extract the lens and camera settings from uploaded photos so I can display them. Help me write the C++ code to read Exif tags from an image file.

Frequently asked questions

wtf is exiv2?

A C++ tool and library for reading, writing, and modifying hidden metadata inside image files like photos. It handles common standards like Exif, IPTC, XMP, and ICC profiles.

What language is exiv2 written in?

Mainly C++. The stack also includes C++, CMake.

Is exiv2 actively maintained?

Stale — no commits in 1-2 years (last push 2025-01-02).

What license does exiv2 use?

You can use and modify this software freely, but if you distribute your changes or build a product on top of it, you must also release your source code under the same open-source license.

How hard is exiv2 to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is exiv2 for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.