Wie kann ich EXIF-Daten in ein Bild hinzufügen?
-
04-07-2019 - |
Frage
Auf unserer Website erhalten wir eine große Menge von Fotos aus verschiedenen Quellen hochgeladen.
Um die Datei zu halten Größen, alle wir abstreifen EXIF-Daten von der Quelle mit mogrify :
mogrify -strip image.jpg
Was wir möchten in der Lage sein zu tun ist, einige grundlegenden EXIF-Daten (Urheberrecht Initrode, etc.) wieder auf dieses neue „sauberen“ Bild einfügen, aber ich kann nichts in der Dokumentation scheinen zu finden, erreichen würde dies.
Hat jemand keine Erfahrung, dies zu tun?
Wenn es nicht durch imagemagick getan werden kann, eine PHP-basierte Lösung die nächste beste Sache sein würde!
Danke.
Lösung
Sie können eine große Menge an Speicherplatz sparen, vor allem, wenn Sie eine große Anzahl von Bildern haben ..
Fügen Sie Folgendes text.txt (Format der IPTC-Tags genommen von hier ):
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"
Isolieren Sie alle vorhandenen EXIF-Daten aus dem Bild
mogrify -strip image.jpg
Fügen Sie die Gutschrift auf Ihr Bild
mogrify -profile 8BIMTEXT:text.txt image.jpg
Andere Tipps
Exiftool sieht aus wie es eine genaue Übereinstimmung für Sie wäre.
Ich habe nicht versucht, aber ich bin jetzt zu gehen und beheben all meine Flitterwochen Fotos versucht, die 2074.01.01 markiert sind, weil ich das Datum neu vergessen, nachdem die Batterien gestorben.
Hier ist ein PHP Exif-Bibliothek das sollte das tun, was Sie brauchen.
Die PHP Exif Library (PEL) können Sie vollständig Exif (Exchange manipulieren Image File Format) Daten. Dies ist das Daten, dass Digitalkameras in ihre Bilder, wie das Datum und Zeit, Verschlusszeit, ISO-Wert und so auf.
PEL verwenden, kann man vollständig ändern die Exif-Daten, was bedeutet, dass es beides sein kann gelesen und geschrieben. Völlig neue Exif Daten können auch Bilder hinzugefügt werden. PEL komplett in PHP geschrieben und hängt davon ab, nichts außer einem Standard Installation von PHP, Version 5. PEL ist gehostet auf Source.
auf Linux gibt es ein Programm namens jhead. Es kann einen minimalen EXIF-Header mit dem Befehl hinzufügen:
jhead -mkexif img.jpg
Ich bezweifle, dass Sie viel Platz durch Entfernen Exif-Informationen gewinnen wird ...
Wie auch immer, ich kann falsch sein, aber Exif-Metadaten gehören technischere zu speichern (und kontextuelle) Informationen. Für solche Sachen Urheberrecht, sollten Sie IPTC stattdessen verwenden.
Das ist etwas, was Sie tun können, es scheint, mit ImageMagick: schreiben IPTC-Daten in JPEG mit ImageMagick .
Sie können diese direkt in PHP tun, um die Verwendung von PEL Bibliothek. Sie würden dies tun, indem Sie einfach die vorhandenen EXIF-Header überschreiben,
// 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');
Sie können eine komplette Liste aller unterstützten EXIF-Daten (PelTag) in der PEL docs .