Tree [144116] master /

File Date Author Commit
auto-m4 2007-05-21 hun hun [1403a2] auto-m4 .cvsignore
binary 2006-01-03 hfiguiere hfiguiere [2c0ba9] added cvsignore
contrib 2010-05-06 dfandrich dfandrich [180017] Removed non-ASCII characters from the few sourc...
doc 2009-10-06 dfandrich dfandrich [915469] Added --enable-maintainer-mode in configure and...
libexif 2012-10-07 wang-bin wang-bin [a1998e] WinCE: add missing time and bsearch
po 2012-07-09 dfandrich dfandrich [2af017] po/da.po: Updated Danish translation by Joe Hansen
test 2010-05-06 dfandrich dfandrich [180017] Removed non-ASCII characters from the few sourc...
win 2012-10-07 wang-bin wang-bin [a1998e] WinCE: add missing time and bsearch
.cvsignore 2007-05-17 hun hun [d96da4] new place for *
.gitignore 2012-09-10 WangBin WangBin [cc3043] Initial commit
AUTHORS 2012-07-13 dfandrich dfandrich [5febd9] I suppose I should take some credit (for better...
COPYING 2009-09-29 dfandrich dfandrich [139dca] Updated the FSF's address
ChangeLog 2012-07-12 dfandrich dfandrich [c4a077] Released 0.6.21 2009-11-23 dfandrich dfandrich [d450ab] Include README-Win32.txt in all source distribu...
NEWS 2012-07-12 dfandrich dfandrich [ab3136] Prepare for continued development
README 2012-07-09 dfandrich dfandrich [2af017] po/da.po: Updated Danish translation by Joe Hansen
README-Win32.txt 2005-12-26 hun hun [9d8d8c] add README-Win32.txt 2012-09-12 WangBin WangBin [be6755] Update
common.pri 2012-12-13 wang-bin wang-bin [144116] pro: bug fix and build for mac 2012-07-12 dfandrich dfandrich [36e19e] Prepare for continued development
deploy.pri 2012-12-13 wang-bin wang-bin [144116] pro: bug fix and build for mac 2007-05-21 hun hun [c99501] fix inclusion of libexif/_stdint.h 2009-12-15 dfandrich dfandrich [3ecb69] Move -lm flag into Libs.private ...
libexif.pri 2012-10-07 wang-bin wang-bin [c729f2] misc 2012-10-07 wang-bin wang-bin [a1998e] WinCE: add missing time and bsearch 2008-11-06 dfandrich dfandrich [29888a] Save some bandwidth and use the .bz2 archive by...
port.h 2012-10-07 wang-bin wang-bin [a1998e] WinCE: add missing time and bsearch

Read Me



libexif is a library for parsing, editing, and saving EXIF data. It is
intended to replace lots of redundant implementations in command-line
utilities and programs with GUIs.


libexif supports parsing, editing and saving of EXIF data. In addition, it
has gettext support. All EXIF tags described in EXIF standard 2.1 (and most
from 2.2) are supported.  Many maker notes from Canon, Casio, Epson,
Fuji, Nikon, Olympus, Pentax and Sanyo cameras are also supported.


libexif is written in plain C and does not require any additional library.
GNU gettext will be used for language translation, if available.


libexif can only handle some maker notes, and even those not very well. More
work needs to be done. Note that libmnote has been merged with libexif - it
is no longer needed.


We have documented the libexif API using doxygen and are making
the results available at

The short test programs in the test directory illustrates how to create
valid EXIF data from scratch, how to save EXIF data and how to load EXIF
data from data in memory. There are also a few simple example programs
available in the contrib/examples/ directory.  Don't hesitate to contact
us at <> if you have any questions
on how to use libexif.

To link to libexif into your own package, we recommend using the
pkgconfig utility (cf. For
your convenience, libexif both provides libexif-uninstalled.pc and
installs libexif.pc.


Right now, I know of the following frontends to libexif:
 - exif:     A small command-line utility to show EXIF information in JPEG
             files (
 - gexif:    A GTK+ frontend for editing EXIF data
 - gphoto2:  A command-line frontend to libgphoto2, a library to access a 
             wide range of digital cameras (
 - gtkam:    A GTK+ frontend to libgphoto2 (
 - thirdeye: Digital photos organizer and driver for eComStation
 - digikam:  digital photo management application for KDE

If you would like to migrate your program to use libexif or add EXIF support
to it, don't hesitate to contact the authors.


I know of the following libraries that use or have been inspired by libexif:
 - libexif-gtk: library of widgets to help display EXIF tags in GTK
   programs (part of the libexif project)
 - pel: PHP-Code (


It really depends on your environment what to do in order to get libexif
to build. Building from the source tar ball usually involves the commands:

  sudo make install

When building from source out of CVS, something like the following will be

  mv po/Makevars.template po/Makevars
  aclocal -I auto-m4 -I m4m
  libtoolize --force
  automake --add-missing

Or, probably just:

  autoreconf -i

Besides the standard arguments, configure takes several specific to libexif:

  --disable-docs          To disable producing any documentation
  --enable-internal-docs  Build internal code docs if Doxygen available
  --enable-ship-binaries  To include Windows DLLs in 'make dist'

Certain specialized applications can reduce the size of the libexif
binary by setting one or both of the following macros in the CPPFLAGS
environment variable at configure time.  Each one removes certain kinds of
text strings and constants from the binary.  Applications which need
to access specific, known EXIF tags and know in advance the meaning of
their data have no need of those strings and can save considerable space
by eliminating them.

 -DNO_VERBOSE_TAG_STRINGS Names and descriptions of EXIF tags, debug messages,
                          mandatory EXIF fields (disabling auto-tag-fixup)
 -DNO_VERBOSE_TAG_DATA    Names of enumerated tag data contents


The libexif translations are made by volunteers working on their own,
either directly with the libexif project or through one of two translation
coordination sites, the Translation Project
<> and Launchpad
Any updates to language translations coordinated by the Translation Project
must be made through their web site, but all other languages can be
updated either through Launchpad (preferred) or by sending updates to
the libexif developers mailing list directly.  As of this writing, the
following languages must be updated through the Translation Project:
cs da de es fr it ja nl pl sk sv uk vi

If you are interested in translating libexif into a new language, we
recommend that you join one of the above translation groups and take
advantage of the systems they have built to help you.  A translation
disclaimer is NOT required for libexif at the Translation Project; by making
a translation, you agree implicitly to provide it under the same license
terms as the rest of libexif (LGPL).


libexif has originally been written by Curtis Galloway
<>. Because of the original design not
supporting editing and saving, Lutz Mueller <>
rewrote libexif from scratch. Since then, many more people have contributed
to libexif.


Some links you might want to check out if you are interested in further
information about EXIF.

 - metadata extraction framework in Java
 - information about the EXIF standard.
 - Looks
   like libexif in Perl. Seems to support a lot of MakerNotes.