Comment ajouter des données exif à une image?

sur notre site, nous obtenons une grande quantité de photos téléchargées à partir de diverses sources.

afin de réduire la taille des fichiers, nous les enlevons tous données exif à partir de la source à l'aide de mogrify:

mogrify -strip image.jpg

ce que nous aimerions pouvoir faire est d'insérer quelques données exif de base (Copyright Initrode, etc) sur cette nouvelle image "propre", mais je ne semble pas trouver quoi que ce soit dans les docs qui permettrait cela.

personne n'A aucune expérience de la fait-il cela?

si cela ne peut pas être fait via imagemagick, une solution basée sur PHP serait la meilleure chose suivante!

Merci.

19
demandé sur ConroyP 2008-10-23 15:49:26

6 réponses

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 tags IPTC prises à partir de ici):

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"

supprimer 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
13
répondu Ciaran 2011-07-24 14:25:31

Exiftool on dirait que ça correspondrait exactement à vous.

Je n'ai pas essayé mais je suis maintenant tenté d'aller réparer toutes mes photos de lune de miel qui sont marqués 01/01/2074 parce que j'ai oublié de réinitialiser la date après la mort des batteries.

12
répondu Colin Pickard 2008-10-23 12:01:15

Voici un PHP Exif Library que doit faire ce dont vous avez besoin.

la bibliothèque PHP Exif (PEL) vous permet entièrement manipulable Exif (échangeable Format de Fichier d'Image) de données. C'est le données que les caméras numériques placent dans leurs images, telles que la date et temps, vitesse d'obturation, valeur ISO et ainsi sur.

en utilisant PEL, on peut entièrement modifier le Données Exif, ce qui signifie qu'il peut être à la fois lu et écrit. Complètement nouveau Exif les données peuvent également être ajouté aux images. PEL est écrit entièrement en PHP et dépend de rien, sauf d'une norme installation de PHP, version 5. PEL is hébergé sur SourceForge.

6
répondu mwilliams 2008-10-23 12:05:46

sur linux, il existe un programme appelé jhead. Il peut ajouter un en-tête minimal exif avec la commande:

jhead-mkexif img.jpg

5
répondu Bastiaan 2010-01-08 19:11:48

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 appartiennent davantage au stockage d'informations techniques (et contextuelles). Pour des choses comme le copyright, vous devriez utiliser IPTC à la place.

C'est quelque chose que vous pouvez faire, apparemment, avec ImageMagick: Écrire les Données IPTC Jpeg avec ImageMagick.

1
répondu PhiLho 2008-10-23 15:23:10

Vous pouvez le faire directement en PHP en utilisant le PEL bibliothèque. Vous le feriez simplement en écrasant les en-têtes EXIF existants,

// 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 pouvez trouver une liste complète de tous les EXIF-data supportés (PelTag) dans le PEL docs.

0
répondu Andreas Bergström 2017-09-12 14:57:08