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.

¿Fue útil?

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 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top