2 4 11 34 0 0 0

EXIF-Header-Daten zur Bildauszeichnung

Bild 1
Kaum zu glauben
Gefällt am 12. Februar
Bild: Andreas Päßler
31. Mai 2013 13:02
Bild 2
Paprika im Bananenmantel
Feines Schmäckle
Nicht der Wolf im Schafspelz
Bild: Andreas Päßler
17. April 2016 13:29
Bild 3
Vanitas
Wie Schönheit doch vergeht!
Dennoch bleibt sie in Erinnerung und wird mit jedem Neuen wiedergeboren.
Bild: Andreas Päßler
25. Mai 2016 11:05

Hinlänglich bekannt ist ja wohl, dass Digitalkameras entsprechende EXIF-Datentags mitschreiben. Wer mehr als ein paar Bilder präsentieren möchte und nicht vorhat Bildtitel, Autor, Aufnahmedatum oder Bildbeschreibung u.s.w. manuell im <figcaption>-tag zu beschreiben, muss dies in einem Array ( JavaScript oder PHP ) oder einer Textdatei, die mittels PHP zeilenweise auszulesen ist, notieren.
Es geht aber auch über die MetaEinträge: Bildklick (rechte Maustaste auf die darzustellenden Bilder) ► Eigenschaften ► Details und die entsprechenden Formularfelder eintragen. Was einem besser von der Hand geht, entscheidet den Arbeitsweg oder man macht weiter so, wie schon immer gehandhabt.

Für mich gilt: wende das an, was dem Projekt am besten angepasst ist. Wenn man dann noch auf den glücklichen Umstand stößt, dass einem Auftraggeber diese MetaEinträge keine böhmischen Dörfer sind, ist die Antwort entschieden. Kostet ja alles Zeit und Geld!

Nun denn, was gibt es zu exif_read_data() zu sagen: „Eigentlich garnicht so viel!“
Die MetaDaten aus der zweidimensionalen Tabelle
$exif = exif_read_data($value, 0, true);
notieren, die man zur Bildbeschreibung für wichtig hält.
Mit $value wird in einer foreach-Schleife der Bildpfad übergeben.


 $bildtext = isset($exif["IFD0"]["ImageDescription"]) 
   ? $exif["IFD0"]["ImageDescription"] :'' ; 
 $bildcomm = isset($exif["IFD0"]["Comments"]) 
   ? $exif["IFD0"]["Comments"] : " " ;
/* iconv ist wichtig um Sonderzeichen/Umlaute zu formatieren */
 $bildcomm = iconv("ISO-8859-1//TRANSLIT","UTF-8",$bildcomm ) ; 
 $bildsub = isset($exif["IFD0"]["Subject"]) 
   ? $exif["IFD0"]["Subject"] : " " ;
/* gilt für "Comments" und "Subject" 
 Sonst kommt sowas: Feines Schmäckle */
 $bildsub = iconv("ISO-8859-1//TRANSLIT","UTF-8",$bildsub ) ; 
 $bildautor = isset($exif["IFD0"]["Artist"]) 
   ? "Bild: ".$exif["IFD0"]["Artist"] 
   : "&copy; Auftraggeber" ;
 $bilddatum = isset($exif["EXIF"]["DateTimeOriginal"]) 
   ? $exif["EXIF"]["DateTimeOriginal"] : '' ;
/* $bilddatum umformatieren sonst Jahr:Monat:Tag */
 $bdy = substr( $bilddatum , 0, 4 ) ;
 $bdm = substr( $bilddatum , 5, 2 ) ;
 $bdm = $ar_mn[$bdm*1] ;
 $bdt = substr( $bilddatum , 8, 2 ) ;
 $bdhm = substr( $bilddatum , 11, 5 ) ;
 $bdatum = "$bdt. $bdm $bdy $bdhm" ;

Für die paar Bilder lohnt es sich zwar noch nicht darüber nachzudenken. Soll es aber mal mehr werden, wird der Aufwand in externen Textdateien die Beschriftung einzutragen, immens. Ebenso arbeitsintiv wird bei umfangreichen Bildpräsentationen der manuelle Eintrag in die entsprechenden tags. Nicht zuletzt ist von Vorteil: Es wird alles mit jedem Bild mitgeschickt!




Dokument geändert am: 14. Dez. 2017 16:53