2008-10-23 17 views
19

Sur notre site, nous obtenons une grande quantité de photos téléchargées à partir de diverses sources.Comment ajouter des données exif à une image?

Afin de garder le taille des fichiers vers le bas, nous enlevons tous exif data de la source à l'aide mogrify:

mogrify -strip image.jpg 

Ce que nous aimerions être en mesure de faire est d'insérer des données exif de base (droit d'auteur Initrode , etc) de retour sur cette nouvelle image "propre", mais je n'arrive pas à trouver quoi que ce soit dans les docs qui pourraient y parvenir.

Quelqu'un a-t-il déjà fait cette expérience?

Si cela n'est pas possible grâce à imagemagick, une solution basée sur PHP serait la meilleure solution!

Merci.

Répondre

13

Vous pouvez enregistrer une grande quantité d'espace, surtout si vous avez un grand nombre d'images ..

Ajouter ce qui suit au texte.txt (format des balises IPTC prises 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" 

Strip toutes les données exif existantes de l'image

mogrify -strip image.jpg 

Ajouter le crédit à votre image

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

Ça va faire bien, à votre santé! – ConroyP

+0

Quiconque connaît la syntaxe de l'ajout de tags de rubrique, veuillez mettre à jour la solution. –

12

Exiftool semble que ce serait une correspondance exacte pour vous.

Je ne l'ai pas encore essayé mais je suis maintenant tenté d'aller réparer toutes mes photos de lune de miel qui sont marquées 01/01/2074 car j'ai oublié de réinitialiser la date après la mort des piles.

+0

Remerciements - bon conseil. Je suis sorti d'un trou. –

6

Voici un PHP Exif Library qui devrait faire ce dont vous avez besoin.

La bibliothèque PHP Exif (PEL) vous permet de manipuler entièrement les données Exif (Exchangeable image Format de fichier). Il s'agit des données que les appareils photo numériques placent dans leurs images, telles que la date et l'heure , la vitesse d'obturation, la valeur ISO et ainsi de suite . En utilisant PEL, on peut modifier complètement les données Exif , ce qui signifie qu'il peut être à la fois lu et écrit . Complètement nouvelles données Exif peuvent également être ajoutées aux images. PEL est écrit complètement en PHP et dépend de rien, sauf une installation standard de PHP, version 5. PEL est hébergé sur SourceForge.

+0

Ce lien est mort maintenant. – GreenMatt

+0

PEL est maintenant hébergé à github http://lsolesen.github.io/pel/ –

1

Je doute que vous gagnerez beaucoup d'espace en supprimant les informations Exif ...

Quoi qu'il en soit, je peux me tromper, mais les métadonnées Exif appartient plus pour stocker des informations techniques (et contextuelle). Pour des choses comme le droit d'auteur, vous devriez utiliser IPTC à la place.

C'est quelque chose que vous pouvez faire, apparemment, avec ImageMagick: Write IPTC Data to Jpeg with ImageMagick.

5

sur linux il est un programme appelé jhead. Il peut ajouter un en-tête de exif minimale avec la commande:

jhead -mkexif img.jpg

0

Vous pouvez le faire directement en PHP en utilisant la bibliothèque PEL. Vous devez faire cela en réécrivant simplement l'existant EXIF-têtes,

// 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'); 

Vous trouverez une liste complète de toutes les données EXIF ​​pris en charge (PelTag) in the PEL docs.