
Bibliothèque C pour analyser, modifier et enregistrer les données EXIF, corrigée pour CVE-2020-0181 afin de prévenir un dépassement de tampon sur le tas lors de l'analyse des balises EXIF.
libexif -------
libexif est une bibliothèque pour analyser, éditer et enregistrer des données EXIF. Elle est destinée à remplacer de nombreuses implémentations redondantes dans les utilitaires en ligne de commande et les programmes avec interfaces graphiques.
libexif prend en charge l'analyse, l'édition et l'enregistrement des données EXIF. De plus, il dispose du support gettext. Toutes les balises EXIF décrites dans le standard EXIF 2.1 (et la plupart de la version 2.2) sont prises en charge. De nombreuses notes fabricant des appareils Canon, Casio, Epson, Fuji, Nikon, Olympus, Pentax et Sanyo sont également supportées.
libexif est écrit en C pur et ne nécessite aucune bibliothèque supplémentaire. GNU gettext sera utilisé pour la traduction linguistique, si disponible.
libexif ne peut traiter que certaines notes fabricant, et encore pas très bien. Davantage de travail est nécessaire. Notez que libmnote a été fusionné avec libexif - il n'est plus nécessaire.
Nous avons documenté l'API de libexif en utilisant doxygen et mettons les résultats à disposition sur http://libexif.sourceforge.net/api/
Les courts programmes de test dans le répertoire test illustrent comment créer des données EXIF valides à partir de zéro, comment enregistrer des données EXIF et comment charger des données EXIF à partir de données en mémoire. Il y a aussi quelques programmes d'exemple simples disponibles dans le répertoire contrib/examples/. N'hésitez pas à nous contacter à si vous avez des questions sur l'utilisation de libexif.
Pour lier libexif à votre propre paquet, nous recommandons d'utiliser l'utilitaire pkgconfig (cf. http://www.freedesktop.org/wiki/Software/pkg-config/ Pour votre commodité, libexif fournit à la fois libexif-uninstalled.pc et installe libexif.pc.
Right now, I know of the following frontends to libexif:
Si vous souhaitez migrer votre programme pour utiliser libexif ou y ajouter le support EXIF, n'hésitez pas à contacter les auteurs.
Je connais les bibliothèques suivantes qui utilisent ou ont été inspirées par libexif :
Cela dépend vraiment de votre environnement pour savoir quoi faire afin de construire libexif. La construction à partir de l'archive source tar implique généralement les commandes :
./configure make sudo make install
Lors de la construction à partir des sources issues de CVS, quelque chose comme ce qui suit sera nécessaire :
gettextize mv po/Makevars.template po/Makevars aclocal -I auto-m4 -I m4m autoheader libtoolize --force automake --add-missing autoconf ./configure make
Ou, probablement simplement :
autoreconf -i ./configure make
En plus des arguments standard, configure en prend plusieurs spécifiques à libexif :
--disable-docs Pour désactiver la production de toute documentation --enable-internal-docs Construire la documentation interne si Doxygen est disponible --enable-ship-binaries Pour inclure les DLL Windows dans 'make dist'
Certaines applications spécialisées peuvent réduire la taille du binaire libexif en définissant une ou les deux macros suivantes dans la variable d'environnement CPPFLAGS au moment de la configuration. Chacune supprime certains types de chaînes de texte et constantes du binaire. Les applications qui ont besoin d'accéder à des balises EXIF spécifiques et connues et connaissent à l'avance la signification de leurs données n'ont pas besoin de ces chaînes et peuvent économiser un espace considérable en les éliminant.
-DNO_VERBOSE_TAG_STRINGS Noms et descriptions des balises EXIF, messages de débogage, champs EXIF obligatoires (désactivation de la correction automatique des balises) -DNO_VERBOSE_TAG_DATA Noms des contenus de données de balises énumérées
Les traductions de libexif sont réalisées par des bénévoles travaillant de leur propre initiative, soit directement avec le projet libexif, soit via l'un des deux sites de coordination de traduction, le Translation Project http://translationproject.org/domain/libexif.html et Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12. Toute mise à jour des traductions linguistiques coordonnées par le Translation Project doit être effectuée via leur site web, mais toutes les autres langues peuvent être mises à jour soit via Launchpad (préféré) soit en envoyant les mises à jour directement à la liste de diffusion des développeurs libexif. À l'heure où j'écris, les langues suivantes doivent être mises à jour via le Translation Project : cs da de es fr it ja nl pl sk sv uk vi
Si vous êtes intéressé par la traduction de libexif dans une nouvelle langue, nous vous recommandons de rejoindre l'un des groupes de traduction ci-dessus et de profiter des systèmes qu'ils ont construits pour vous aider. Une clause de non-responsabilité de traduction n'est PAS requise pour libexif au Translation Project ; en effectuant une traduction, vous acceptez implicitement de la fournir sous les mêmes termes de licence que le reste de libexif (LGPL).
libexif a été initialement écrit par Curtis Galloway [email protected]. En raison de la conception originale ne supportant pas l'édition et la sauvegarde, Lutz Mueller [email protected] a réécrit libexif from scratch. Depuis, de nombreuses autres personnes ont contribué à libexif.
Quelques liens que vous pourriez consulter si vous êtes intéressé par davantage d'informations sur EXIF.