
Bibliothèque C pour analyser, éditer et enregistrer des données EXIF, avec un accent sur le traitement de CVE-2020-0452 dans AOSP10. Fournit une API pour l'extraction et la manipulation de métadonnées.
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 de gettext. Toutes les balises EXIF décrites dans la norme EXIF 2.1 (et la plupart de la 2.2) sont prises en charge. De nombreuses notes de fabricant des appareils Canon, Casio, Epson, Fuji, Nikon, Olympus, Pentax et Sanyo sont également prises en charge.
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 gérer que certaines notes de fabricant, et même celles-ci 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 libexif en utilisant doxygen et mettons les résultats à disposition sur http://libexif.sourceforge.net/api/
Les programmes de test courts 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 existe également quelques exemples de programmes 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.
Actuellement, je connais les frontends suivants pour libexif :
Si vous souhaitez migrer votre programme pour utiliser libexif ou ajouter la prise en charge 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 ce qu'il faut faire pour compiler libexif. La compilation à partir de l'archive source implique généralement les commandes :
./configure make sudo make install
Lors de la compilation à 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 standards, configure accepte plusieurs options spécifiques à libexif :
--disable-docs Pour désactiver la production de toute documentation --enable-internal-docs Construire la documentation interne du code 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 lors de la configuration. Chacune supprime certains types de chaînes de texte et de constantes du binaire. Les applications qui ont besoin d'accéder à des balises EXIF spécifiques et connues et savent à 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 du contenu des données de balises énumérées
Les traductions de libexif sont réalisées par des bénévoles travaillant de leur propre chef, soit directement avec le projet libexif, soit via l'un des deux sites de coordination des traductions, 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 (de préférence), soit en envoyant les mises à jour directement à la liste de diffusion des développeurs libexif. À l'heure actuelle, 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 mis en place 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 conditions de licence que le reste de libexif (LGPL).
libexif a été écrit à l'origine par Curtis Galloway [email protected]. En raison de la conception originale ne prenant pas en charge l'édition et l'enregistrement, Lutz Mueller [email protected] a réécrit libexif à partir de zéro. Depuis lors, de nombreuses autres personnes ont contribué à libexif.
Quelques liens que vous pourriez vouloir consulter si vous êtes intéressé par des informations supplémentaires sur EXIF.