2008-10-23 61 views
19

En nuestro sitio, obtenemos una gran cantidad de fotos cargadas de diversas fuentes.¿Cómo agrego datos exif a una imagen?

Con el fin de mantener el tamaño de los archivos abajo, nos tira todo exif data de la fuente usando mogrify:

mogrify -strip image.jpg 

Lo que nos gustaría ser capaz de hacer es insertar algunos datos básicos EXIF ​​(Derechos de Autor Initrode , etc.) en esta nueva imagen "limpia", pero parece que no puedo encontrar nada en los documentos que logre esto.

¿Alguien ha tenido alguna experiencia al respecto?

Si no se puede hacer a través de imagemagick, ¡una solución basada en PHP sería la mejor opción!

Gracias.

Respuesta

13

le puede ahorrar una gran cantidad de espacio, sobre todo si tiene un gran número de imágenes ..

Agregue lo siguiente al texto.txt (formato de las etiquetas IPTC tomado de here):

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" 

de Gaza todos los datos EXIF ​​existentes de la imagen

mogrify -strip image.jpg 

Añadir el crédito a su imagen

mogrify -profile 8BIMTEXT:text.txt image.jpg 
+1

¡Te irá muy bien, salud! – ConroyP

+0

Cualquiera que conozca la sintaxis para agregar etiquetas de tema, actualice la solución. –

12

Exiftool parece que sería una coincidencia exacta para usted.

No lo he intentado, pero ahora estoy tentado de ir a arreglar todas mis fotos de luna de miel que están marcadas 01/01/2074 porque olvidé restablecer la fecha después de que las baterías murieron.

+0

Gracias - punta superior. Me sacó de un agujero. –

6

Aquí hay un PHP Exif Library que debería hacer lo que necesita.

La Biblioteca PHP Exif (PEL) le permite manipular totalmente Exif datos (intercambiable imagen del formato de archivo). 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.

Utilizando PEL, se pueden modificar completamente los datos Exif, lo que significa que puede ser leído y escrito. Los datos completamente nuevos de Exif también se pueden agregar a las imágenes. PEL está escrito completamente en PHP y depende de nada excepto una instalación estándar de PHP, versión 5. PEL es alojado en SourceForge.

+0

Ese enlace está muerto ahora. – GreenMatt

+0

PEL está ahora alojado en github http://lsolesen.github.io/pel/ –

1

me cabe duda de que ganará mucho espacio mediante la eliminación de la información Exif ...

De todos modos, puedo estar equivocado, pero los metadatos Exif pertenece más a almacenar (y contextual) información técnica. Para cosas como el copyright, debería usar IPTC en su lugar.

Eso es algo que puede hacer, aparentemente, con ImageMagick: Write IPTC Data to Jpeg with ImageMagick.

5

en Linux existe es un programa llamado jhead. Se puede añadir una cabecera EXIF ​​mínima con el comando:

jhead -mkexif img.jpg

0

Puede hacerlo directamente en PHP utilizando la biblioteca PEL. Se podría hacer esto simplemente sobrescribir el EXIF ​​encabezados existente,

// 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) in the PEL docs.

Cuestiones relacionadas