
Librería C para analizar, editar y guardar metadatos EXIF de archivos JPEG, con un enfoque en abordar la vulnerabilidad CVE-2020-0198.
libexif -------
libexif es una biblioteca para analizar, editar y guardar datos EXIF. Está pensada para reemplazar muchas implementaciones redundantes en utilidades de línea de comandos y programas con interfaces gráficas.
libexif admite el análisis, la edición y el guardado de datos EXIF. Además, tiene soporte para gettext. Se admiten todas las etiquetas EXIF descritas en el estándar EXIF 2.1 (y la mayoría de 2.2). También se admiten muchas notas de fabricante de cámaras Canon, Casio, Epson, Fuji, Nikon, Olympus, Pentax y Sanyo.
libexif está escrito en C puro y no requiere ninguna biblioteca adicional. Se usará GNU gettext para la traducción de idiomas, si está disponible.
libexif solo puede manejar algunas notas de fabricante, y ni siquiera esas muy bien. Se necesita más trabajo. Tenga en cuenta que libmnote se ha fusionado con libexif; ya no es necesaria.
Hemos documentado la API de libexif usando doxygen y ponemos los resultados a disposición en http://libexif.sourceforge.net/api/
Los programas de prueba breves en el directorio test ilustran cómo crear datos EXIF válidos desde cero, cómo guardar datos EXIF y cómo cargar datos EXIF desde datos en memoria. También hay algunos programas de ejemplo sencillos disponibles en el directorio contrib/examples/. No dude en contactarnos en [email protected] si tiene alguna pregunta sobre cómo usar libexif.
Para enlazar libexif con su propio paquete, recomendamos usar la utilidad pkgconfig (cf. http://www.freedesktop.org/wiki/Software/pkg-config/ Para su comodidad, libexif proporciona tanto libexif-uninstalled.pc como instala libexif.pc.
Ahora mismo, conozco los siguientes frontends para libexif:
Si desea migrar su programa para usar libexif o agregarle soporte EXIF, no dude en contactar a los autores.
Conozco las siguientes bibliotecas que usan o han sido inspiradas por libexif:
Realmente depende de su entorno qué hacer para lograr que libexif se compile. La compilación desde el archivo tar de fuentes normalmente implica los comandos:
./configure make sudo make install
Al compilar desde fuentes fuera de CVS, será necesario algo como lo siguiente:
gettextize mv po/Makevars.template po/Makevars aclocal -I auto-m4 -I m4m autoheader libtoolize --force automake --add-missing autoconf ./configure make
O, probablemente solo:
autoreconf -i ./configure make
Además de los argumentos estándar, configure acepta varios específicos de libexif:
--disable-docs Para deshabilitar la producción de documentación --enable-internal-docs Compilar documentación interna del código si Doxygen está disponible --enable-ship-binaries Para incluir DLL de Windows en 'make dist'
Ciertas aplicaciones especializadas pueden reducir el tamaño del binario de libexif estableciendo una o ambas de las siguientes macros en la variable de entorno CPPFLAGS en el momento de configure. Cada una elimina ciertos tipos de cadenas de texto y constantes del binario. Las aplicaciones que necesitan acceder a etiquetas EXIF específicas y conocidas y saben de antemano el significado de sus datos no necesitan esas cadenas y pueden ahorrar un espacio considerable al eliminarlas.
-DNO_VERBOSE_TAG_STRINGS Nombres y descripciones de etiquetas EXIF, mensajes de depuración, campos EXIF obligatorios (deshabilitando la corrección automática de etiquetas) -DNO_VERBOSE_TAG_DATA Nombres de los contenidos de datos de etiquetas enumeradas
Las traducciones de libexif son realizadas por voluntarios que trabajan por su cuenta, ya sea directamente con el proyecto libexif o a través de uno de los dos sitios de coordinación de traducciones, el Translation Project http://translationproject.org/domain/libexif.html y Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12. Cualquier actualización de las traducciones de idiomas coordinadas por el Translation Project debe realizarse a través de su sitio web, pero todos los demás idiomas pueden actualizarse ya sea a través de Launchpad (preferido) o enviando las actualizaciones directamente a la lista de correo de desarrolladores de libexif. Al momento de escribir esto, los siguientes idiomas deben actualizarse a través del Translation Project: cs da de es fr it ja nl pl sk sv uk vi
Si está interesado en traducir libexif a un nuevo idioma, le recomendamos que se una a uno de los grupos de traducción anteriores y aproveche los sistemas que han construido para ayudarle. No se requiere una declaración de exención de responsabilidad de traducción para libexif en el Translation Project; al hacer una traducción, acepta implícitamente proporcionarla bajo los mismos términos de licencia que el resto de libexif (LGPL).
libexif fue escrito originalmente por Curtis Galloway [email protected]. Debido a que el diseño original no soportaba la edición y el guardado, Lutz Mueller [email protected] reescribió libexif desde cero. Desde entonces, muchas más personas han contribuido a libexif.
Algunos enlaces que quizás quiera consultar si está interesado en más información sobre EXIF.