1b8bc0d8aSopenharmony_ci libexif 2b8bc0d8aSopenharmony_ci ------- 3b8bc0d8aSopenharmony_ci 4b8bc0d8aSopenharmony_ciDESCRIPTION 5b8bc0d8aSopenharmony_ci----------- 6b8bc0d8aSopenharmony_ci 7b8bc0d8aSopenharmony_cilibexif is a library for parsing, editing, and saving EXIF data. It is 8b8bc0d8aSopenharmony_ciintended to replace lots of redundant implementations in command-line 9b8bc0d8aSopenharmony_ciutilities and programs with GUIs. 10b8bc0d8aSopenharmony_ci 11b8bc0d8aSopenharmony_ci 12b8bc0d8aSopenharmony_ciFEATURES 13b8bc0d8aSopenharmony_ci-------- 14b8bc0d8aSopenharmony_ci 15b8bc0d8aSopenharmony_cilibexif supports parsing, editing and saving of EXIF data. In addition, it 16b8bc0d8aSopenharmony_cihas gettext support. All EXIF tags described in EXIF standard 2.1 (and most 17b8bc0d8aSopenharmony_cifrom 2.2) are supported. Many maker notes from Canon, Casio, Epson, 18b8bc0d8aSopenharmony_ciFuji, Nikon, Olympus, Pentax and Sanyo cameras are also supported. 19b8bc0d8aSopenharmony_ci 20b8bc0d8aSopenharmony_ci 21b8bc0d8aSopenharmony_ciREQUIREMENTS 22b8bc0d8aSopenharmony_ci------------ 23b8bc0d8aSopenharmony_ci 24b8bc0d8aSopenharmony_cilibexif is written in plain C and does not require any additional library. 25b8bc0d8aSopenharmony_ciGNU gettext will be used for language translation, if available. 26b8bc0d8aSopenharmony_ci 27b8bc0d8aSopenharmony_ci 28b8bc0d8aSopenharmony_ciLIMITATIONS 29b8bc0d8aSopenharmony_ci----------- 30b8bc0d8aSopenharmony_ci 31b8bc0d8aSopenharmony_cilibexif can only handle some maker notes, and even those not very well. More 32b8bc0d8aSopenharmony_ciwork needs to be done. Note that libmnote has been merged with libexif - it 33b8bc0d8aSopenharmony_ciis no longer needed. 34b8bc0d8aSopenharmony_ci 35b8bc0d8aSopenharmony_ci 36b8bc0d8aSopenharmony_ciUSAGE 37b8bc0d8aSopenharmony_ci----- 38b8bc0d8aSopenharmony_ci 39b8bc0d8aSopenharmony_ciWe have documented the libexif API using doxygen and are making 40b8bc0d8aSopenharmony_cithe results available at https://libexif.github.io/api/ 41b8bc0d8aSopenharmony_ci 42b8bc0d8aSopenharmony_ciThe short test programs in the test directory illustrates how to create 43b8bc0d8aSopenharmony_civalid EXIF data from scratch, how to save EXIF data and how to load EXIF 44b8bc0d8aSopenharmony_cidata from data in memory. To run the test programs, just run make check. 45b8bc0d8aSopenharmony_ciThere are also a few simple example programs available in the 46b8bc0d8aSopenharmony_cicontrib/examples/ directory. Don't hesitate to contact 47b8bc0d8aSopenharmony_cius at <libexif-devel@lists.sourceforge.net> if you have any questions 48b8bc0d8aSopenharmony_cion how to use libexif. 49b8bc0d8aSopenharmony_ci 50b8bc0d8aSopenharmony_ciTo link to libexif into your own package, we recommend using the 51b8bc0d8aSopenharmony_cipkgconfig utility (cf. https://www.freedesktop.org/wiki/Software/pkg-config/ For 52b8bc0d8aSopenharmony_ciyour convenience, libexif both provides libexif-uninstalled.pc and 53b8bc0d8aSopenharmony_ciinstalls libexif.pc. 54b8bc0d8aSopenharmony_ci 55b8bc0d8aSopenharmony_ci 56b8bc0d8aSopenharmony_ciFRONTENDS 57b8bc0d8aSopenharmony_ci--------- 58b8bc0d8aSopenharmony_ci 59b8bc0d8aSopenharmony_ciHere are a few frontends to libexif: 60b8bc0d8aSopenharmony_ci - exif: A small command-line utility to show EXIF information in JPEG 61b8bc0d8aSopenharmony_ci files (https://github.com/libexif/libexif). 62b8bc0d8aSopenharmony_ci - gexif: A GTK+ frontend for editing EXIF data 63b8bc0d8aSopenharmony_ci (https://github.com/libexif/gexif). 64b8bc0d8aSopenharmony_ci - gphoto2: A command-line frontend to libgphoto2, a library to access a 65b8bc0d8aSopenharmony_ci wide range of digital cameras (http://www.gphoto.org). 66b8bc0d8aSopenharmony_ci - gtkam: A GTK+ frontend to libgphoto2 (http://www.gphoto.org). 67b8bc0d8aSopenharmony_ci - thirdeye: Digital photos organizer and driver for eComStation 68b8bc0d8aSopenharmony_ci (http://ecomstation.ru/thirdeye). 69b8bc0d8aSopenharmony_ci - digikam: digital photo management application for KDE 70b8bc0d8aSopenharmony_ci (https://www.digikam.org/) 71b8bc0d8aSopenharmony_ci 72b8bc0d8aSopenharmony_ciIf you would like to migrate your program to use libexif or add EXIF support 73b8bc0d8aSopenharmony_cito it, don't hesitate to contact the authors. 74b8bc0d8aSopenharmony_ci 75b8bc0d8aSopenharmony_ci 76b8bc0d8aSopenharmony_ciLIBRARIES 77b8bc0d8aSopenharmony_ci--------- 78b8bc0d8aSopenharmony_ci 79b8bc0d8aSopenharmony_ciThe following libraries use or have been inspired by libexif: 80b8bc0d8aSopenharmony_ci - libexif-gtk: library of widgets to help display EXIF tags in GTK 81b8bc0d8aSopenharmony_ci programs (https://github.com/libexif/libexif-gtk). 82b8bc0d8aSopenharmony_ci - pel: PHP-Code (https://github.com/lsolesen/pel/) 83b8bc0d8aSopenharmony_ci 84b8bc0d8aSopenharmony_ci 85b8bc0d8aSopenharmony_ciBUILDING 86b8bc0d8aSopenharmony_ci-------- 87b8bc0d8aSopenharmony_ci 88b8bc0d8aSopenharmony_ciIt really depends on your environment what to do in order to get libexif 89b8bc0d8aSopenharmony_cito build. Building from the source tar ball usually involves the commands: 90b8bc0d8aSopenharmony_ci 91b8bc0d8aSopenharmony_ci ./configure 92b8bc0d8aSopenharmony_ci make 93b8bc0d8aSopenharmony_ci sudo make install 94b8bc0d8aSopenharmony_ci 95b8bc0d8aSopenharmony_ciWhen building from source out of git, something like the following will be 96b8bc0d8aSopenharmony_cinecessary: 97b8bc0d8aSopenharmony_ci 98b8bc0d8aSopenharmony_ci autoreconf -i 99b8bc0d8aSopenharmony_ci ./configure 100b8bc0d8aSopenharmony_ci make 101b8bc0d8aSopenharmony_ci 102b8bc0d8aSopenharmony_ciBesides the standard arguments, configure takes several specific to libexif: 103b8bc0d8aSopenharmony_ci 104b8bc0d8aSopenharmony_ci --disable-docs To disable producing any documentation 105b8bc0d8aSopenharmony_ci --enable-internal-docs Build internal code docs if Doxygen available 106b8bc0d8aSopenharmony_ci --enable-ship-binaries To include Windows DLLs in 'make dist' 107b8bc0d8aSopenharmony_ci 108b8bc0d8aSopenharmony_ciCertain specialized applications can reduce the size of the libexif 109b8bc0d8aSopenharmony_cibinary by setting one or both of the following macros in the CPPFLAGS 110b8bc0d8aSopenharmony_cienvironment variable at configure time. Each one removes certain kinds of 111b8bc0d8aSopenharmony_citext strings and constants from the binary. Applications which need 112b8bc0d8aSopenharmony_cito access specific, known EXIF tags and know in advance the meaning of 113b8bc0d8aSopenharmony_citheir data have no need of those strings and can save considerable space 114b8bc0d8aSopenharmony_ciby eliminating them. 115b8bc0d8aSopenharmony_ci 116b8bc0d8aSopenharmony_ci -DNO_VERBOSE_TAG_STRINGS Names and descriptions of EXIF tags, debug messages, 117b8bc0d8aSopenharmony_ci mandatory EXIF fields (disabling auto-tag-fixup) 118b8bc0d8aSopenharmony_ci -DNO_VERBOSE_TAG_DATA Names of enumerated tag data contents 119b8bc0d8aSopenharmony_ci 120b8bc0d8aSopenharmony_ci 121b8bc0d8aSopenharmony_ciINTERNATIONALIZATION 122b8bc0d8aSopenharmony_ci-------------------- 123b8bc0d8aSopenharmony_ci 124b8bc0d8aSopenharmony_ciThe libexif translations are made by volunteers working on their own, 125b8bc0d8aSopenharmony_cieither directly with the libexif project or through one of two translation 126b8bc0d8aSopenharmony_cicoordination sites, the Translation Project 127b8bc0d8aSopenharmony_ci<https://translationproject.org/domain/libexif.html> and Launchpad 128b8bc0d8aSopenharmony_ci<https://translations.edge.launchpad.net/ubuntu/bionic/+source/libexif/+pots/libexif-12>. 129b8bc0d8aSopenharmony_ciAny updates to language translations coordinated by the Translation Project 130b8bc0d8aSopenharmony_cimust be made through their web site, but all other languages can be 131b8bc0d8aSopenharmony_ciupdated either through Launchpad (preferred) or by sending updates to 132b8bc0d8aSopenharmony_cithe libexif developers mailing list directly. As of this writing, the 133b8bc0d8aSopenharmony_cifollowing languages must be updated through the Translation Project: 134b8bc0d8aSopenharmony_cics da de es fr it ja nl pl pt sk sv uk vi 135b8bc0d8aSopenharmony_ci 136b8bc0d8aSopenharmony_ciIf you are interested in translating libexif into a new language, we 137b8bc0d8aSopenharmony_cirecommend that you join one of the above translation groups and take 138b8bc0d8aSopenharmony_ciadvantage of the systems they have built to help you. A translation 139b8bc0d8aSopenharmony_cidisclaimer is NOT required for libexif at the Translation Project; by making 140b8bc0d8aSopenharmony_cia translation, you agree implicitly to provide it under the same license 141b8bc0d8aSopenharmony_citerms as the rest of libexif (LGPL). 142b8bc0d8aSopenharmony_ci 143b8bc0d8aSopenharmony_ci 144b8bc0d8aSopenharmony_ciAUTHORS 145b8bc0d8aSopenharmony_ci------- 146b8bc0d8aSopenharmony_ci 147b8bc0d8aSopenharmony_cilibexif has originally been written by Curtis Galloway 148b8bc0d8aSopenharmony_ci<curtisg@users.sourceforge.net>. Because of the original design not 149b8bc0d8aSopenharmony_cisupporting editing and saving, Lutz Mueller <lutz@users.sourceforge.net> 150b8bc0d8aSopenharmony_cirewrote libexif from scratch. Since then, many more people have contributed 151b8bc0d8aSopenharmony_cito libexif. 152b8bc0d8aSopenharmony_ci 153b8bc0d8aSopenharmony_ci 154b8bc0d8aSopenharmony_ciLINKS 155b8bc0d8aSopenharmony_ci----- 156b8bc0d8aSopenharmony_ci 157b8bc0d8aSopenharmony_ciSome links you might want to check out if you are interested in further 158b8bc0d8aSopenharmony_ciinformation about EXIF. 159b8bc0d8aSopenharmony_ci 160b8bc0d8aSopenharmony_ci - https://drewnoakes.com/code/exif: metadata extraction framework in Java 161b8bc0d8aSopenharmony_ci - https://www.exif.org: information about the EXIF standard. 162b8bc0d8aSopenharmony_ci - https://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/index.html: Looks 163b8bc0d8aSopenharmony_ci like libexif in Perl. Seems to support a lot of MakerNotes. 164