¿Cómo agrego datos exif a una imagen?
-
04-07-2019 - |
Pregunta
En nuestro sitio, obtenemos una gran cantidad de fotos subidas de varias fuentes.
Para mantener los tamaños de archivo bajos, eliminamos todos los datos exif de la fuente usando mogrify :
mogrify -strip image.jpg
Lo que nos gustaría poder hacer es insertar de nuevo algunos datos exif básicos (Copyright Initrode, etc.) en este nuevo " limpio " imagen, pero parece que no puedo encontrar nada en la documentación que pueda lograr esto.
¿Alguien tiene experiencia en hacer esto?
Si no se puede hacer a través de imagemagick, ¡una solución basada en PHP sería la mejor opción!
Gracias.
Solución
Puede ahorrar una gran cantidad de espacio, especialmente si tiene una gran cantidad de imágenes ...
Agregue lo siguiente a text.txt (formato de las etiquetas IPTC tomadas de aquí ):
2#110#Credit="My Company"
2#05#Object Name="THE_OBJECT_NAME"
2#55#Date Created="2011-02-03 12:45"
2#80#By-line="BY-LINE?"
2#110#Credit="The CREDIT"
2#115#Source="SOURCE"
2#116#Copyright Notice="THE COPYRIGHT"
2#118#Contact="THE CONTACT"
2#120#Caption="AKA Title"
Eliminar todos los datos exif existentes de la imagen
mogrify -strip image.jpg
Añade el crédito a tu imagen
mogrify -profile 8BIMTEXT:text.txt image.jpg
Otros consejos
Exiftool parece ser una coincidencia exacta para ti.
No lo he probado, pero ahora tengo la tentación de ir a arreglar todas las fotos de mi luna de miel que están marcadas 01/01/2074 porque olvidé restablecer la fecha después de que se agotaron las baterías.
Aquí hay una Biblioteca de PHP Exif que debe hacer lo que necesita.
La biblioteca PHP Exif (PEL) te permite totalmente manipular Exif (intercambiable Formato de archivo de imagen) datos. Este es el datos que las cámaras digitales colocan en Sus imágenes, como la fecha y Tiempo, velocidad de obturación, valor ISO y así en.
Usando PEL, uno puede modificar completamente el Datos exif, lo que significa que puede ser tanto leído y escrito Exif completamente nuevo Los datos también se pueden agregar a las imágenes. PEL Está escrito completamente en PHP y Depende de nada excepto un estándar. La instalación de PHP, versión 5. PEL es alojado en SourceForge.
en linux hay un programa llamado jhead. Puede agregar un encabezado exif mínimo con el comando:
jhead -mkexif img.jpg
Dudo que gane mucho espacio al eliminar la información Exif ...
De todos modos, puedo estar equivocado, pero los metadatos de Exif pertenecen más a almacenar información técnica (y contextual). Para cosas como derechos de autor, debes usar IPTC en su lugar.
Eso es algo que puedes hacer, aparentemente, con ImageMagick: Escriba datos IPTC en Jpeg con ImageMagick .
Puede hacerlo directamente en PHP utilizando la biblioteca PEL . Haría esto simplemente sobrescribiendo los encabezados EXIF ??existentes,
// Load image data
$data = new PelDataWindow(file_get_contents('IMAGE PATH'));
// Prepare image data
$jpeg = $file = new PelJpeg();
$jpeg->load($data);
// Create new EXIF-headers, overwriting any existing ones (when writing to disk)
$exif = new PelExif();
$jpeg->setExif($exif);
$tiff = new PelTiff();
$exif->setTiff($tiff);
// Create Ifd-data that will hold EXIF-tags
$ifd0 = new PelIfd(PelIfd::IFD0);
$tiff->setIfd($ifd0);
// Create EXIF-data for copyright
$make = new PelEntryAscii(PelTag::COPYRIGHT, '2008-2017 Conroy');
$ifd0->addEntry($make);
// Add more EXIF-data...
// Save to disk
$file->saveFile('IMAGE.jpg');
Puede encontrar una lista completa de todos los datos EXIF ??compatibles (PelTag) en los documentos PEL .