EXIF-Daten mit PHP aus Bildern auslesen

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

Kommentare

  
  1. tboley sagt:

    Problematisch wird es, wenn die Bilder vorher mit der GD Library in PHP bearbeitet wurden - dann gehen die EXIF-Information verloren.

  2. Jakob sagt:

    Ich habe versucht noch ein anderen Exif-Tag auslesen zu lassen, namentlich 'Software'. Erfolglos, aber. Ich habe es mit

    if (isset($exif["EXIF"]["Software"])) {
    print __(' · Software:') . " {$exif["EXIF"]["Software"]}";
    }

    versucht, aber, wie man so schön sagt, da kommt nüscht. Ich bin mir 99%ig sicher dass der Tag auch 'Software' heißt, hab ihn aus der Exif-pdf-Datei die du neulich verlinkt hast. Wie müsste ich den Code denn ändern damit es angezeigt wird? Danke im Voraus.
    Jakob

  3. Engel sagt:

    Hey Frank, ist ein sehr interessantes Thema. Habe auch auf meinem neuen Blog (Online seit gestern früh) mal was dazu geschrieben und auf dein Beitrag verwiesen.

    Grüße dich auch gleich mal mit diesem Kommentar. Hast mir ja schon des öfteren aus der Patsche in Sachen WordPress geholfen. Und bin nun auch wieder aktiv unter den Bloggern 😉

    lg Engel

  4. Tony sagt:

    Interessant wäre es, wenn man auch individuelle EXIF-Daten in dem Bild einfügen könnte. Wäre das möglich?

  5. Dazu müsste man die Exif-Daten des Bildes erweitern. Einige Tools können das, da weis ich aber keinen Tipp, da ich das Ziel nie hatte. Adobe Lightroom kann das eventuell, z.B. Bild mit Tags versehen. Das Auslesen dieser Daten im Theme müsste dann in der functions.php ergänzt werden.

  6. Code ist erstmal korrekt. Hast du mal alle Werte in der Schleife ausgeben lassen, vielleicht ist der Wert nicht vorhanden? Ansonsten prüfe ihn mit einem Desktoptool.

  7. Jakob sagt:

    Ich bin mir nicht ganz sicher was du mit "alle Werte" meinst. Alle möglichen Exif-Werte? Und: der Wert ist auf jeden Fall da, ich hab ihn mit drei verschiedenen Desktop-Tools gecheckt. Er wird auch nicht beim Upload 'fallengelassen' oder gelöscht, denn selbst wenn ich das Bild nochmal runterlade sind alle Exif-Daten, inkl. "Software" noch da.

  8. @Jakob: Im ersten Codeschnipsel habe ich eine Möglichkeit dargestellt, wie man alle enthaltenen Werte und Schlüssel darstellen kann. Damit kann man in jedem Fall erst einmal auf Vorhanden prüfen. Eventuell könnte dann noch ein Fehler im Code vorliegen.

  9. Jakob sagt:

    Ah natürlich, das war ja auch schon in der functions.php integriert, hab ich wohl übersehen. Habe es gerade ausprobiert, auch da wird 'software' nicht angezeigt. Was wirklich komisch ist, denn der Tag ist nunmal vorhanden, und auch "ausgefüllt".
    Dennoch fiel mir noch etwas anderes auf: bei bestimmten Tags schien es Fehler bzgl. UTF-8 zu geben. Manche Werte wurde als pure Abfolge von diesen "Rauten mit Fragezeichen" dargestellt; vornehmlich die die irgendwie manuell geändert werden konnten ("EXIF.MakerNote", "EXIF.UserComment", "Firmware Version").

  10. Jakob sagt:

    Und gerade sah ich noch etwas: m.E. hast du die möglichen Values beim Flash falschrum gesetzt; ich denke es sollte

    $fbflash = (bindec($exif["EXIF"]["Flash"]) ? "Off" : "On");

    heißen. Zumindest habe ich das bei meinen Bildern so gesehen. Bei denen die definitiv einen Blitz benutzten stand er auf 'Off', bei anderen Tagsüber-Bildern auf 'On'.

  11. Sollte eigentlich richtig sein. Entscheidend ist jedoch, was die Schleife ausgibt. Denn dort sieht man alle Schlüssel und Werte. Dementsprechend kann die Formatierung angepasst werden.
    Wer der Schlüssel nicht in der Schleife ausgegeben wird, dann ist er nicht zum Auslesen da. Es sei denn denn, er gehört nicht zu den EXIF-Daten. Im Beispiel lese ich ja EXIF- und IFD0-Daten aus.

  12. Matthias sagt:

    Wie kann ich jetzt festellen, ob das exif Array Daten hatt oder nicht. Wenn keine Exif Daten da sind dann soll eine Meldung erscheinen.

    Mfg Matthias

  13. Am besten mit einem Desktop-Tool, mal suchen, da gibt es Unmengen.

    Alternativ kannst du die index.php anpassen, Zeile 57:

    			} else {
    				echo 'Keine Datei vorhanden!';
    			}
    

    für die Prüfung, ob die Datei vorhanden ist und dann kann jede if-Abfrage (if($exif . . .) für EXIF-Daten mit einer else-Antwort versehen werden.

  14. Benjamin sagt:

    Ich glaube deine Blitzabfrage ist ein bisschen zu einfach:

    Das EXIF-Feld "Flash" ist afaik ne 7-bit Bitmaske, die mehrere Werte zulässt:
    0000001: Blitz ausgelöst
    0000100: No Return detected
    0000110: Return detected
    0001000: Blitz eingeschaltet
    0010000: Blitz ausgeschaltet
    0011000: Blitz auf Auto eingestellt
    0100000: Gerät hat gar keinen Blitz
    1000000: Rote Augen Blitz hat ausgelöst

    1011101 heißt also zum Beispiel: Rote Augen Blitz ausgelöst, Blitz stand auf Auto, Hat ausgelöst, No return

    Zumindest ist das der Stand meines "durch-die-dokus-wühlens"

    Schöne Grüße,
    Benny

  15. Norbert sagt:

    Hallo Frank,

    Dein Blog kann süchtig machen!
    Vielen Dank für Deine hilfreichen Seiten...aber, jetzt kommt (m)eine Frage:

    Warning: exif_read_data(WP_6.jpg) [exif_read_data]: Illegal IFD size: 2 + x1500*12 = xFC02 > x03BA in C:\Users\Public\xampp\htdocs\wordpress_1\wp-content\themes\greyfoto\functions.php on line 95
    Datum: 2009-05-18 · Uhrzeit: 14:10:44
    Blende: F/6.4 · Belichtungsdauer: 1/314s · Belichtungswert:0.0 EV · Brennweite: 13.1mm
    ISO: 100 · Blitz: Flash did not fire
    Kamera o. DIA-Scanner: Nikon, E995

    ...was ist hier zu tun, denn das sieht unter dem Foto nicht so gut aus.

    LG aus BY
    Norbert

  16. BeAvIsBeE sagt:

    Hallo,
    kleine Berichtigung zum Weiß-Abgleich:
    laut Spezifikation EXIF 2.2 hat "WhiteBalance" nur 2 Werte:
    0 = Auto white balance
    1 = Manual white balance
    Other = reserved

    Die Daten für die Licht-Verhältnisse (Daylight, Cloudy, Fluorescent,...) finden sich im EXIF-Parameter "LightSource":
    0 = unknown
    1 = Daylight
    2 = Fluorescent
    3 = Tungsten (incandescent light)
    4 = Flash
    9 = Fine weather
    10 = Cloudy weather
    11 = Shade
    12 = Daylight fluorescent (D 5700 – 7100K)
    13 = Day white fluorescent (N 4600 – 5400K)
    14 = Cool white fluorescent (W 3900 – 4500K)
    15 = White fluorescent (WW 3200 – 3700K)
    17 = Standard light A
    18 = Standard light B
    19 = Standard light C
    20 = D55
    21 = D65
    22 = D75
    23 = D50
    24 = ISO studio tungsten
    255 = other light source
    Other = reserved

  17. Denis sagt:

    Problem: Die exif Daten als solche können zwar ausgelesen werden, allerdings klappt die Funktion bei mir nicht...An dem Kameratypen (Fuji) oder an dem Bild (jpg) kann es nicht liegen, da meine Kamera die selben Bezeichnungen für die einzelnen EXIF Felder vergibt, wie in der Funktion. Was mache ich falsch?

    • @Denis: prüfe mal via extra Tool oder Firefox Erweiterung ob es lesbare Exif-Daten gibt. Wenn ja, dann lese alle über eine Schleife aus und prüfe die Werte.

  18. Matthias sagt:

    Kann man das Plugin/Script auch erweitern das es die Exif Infos aus mehreren Bilder ausliest. So das ich beim Beitrag verfassen mehrere Bilder über die Benutzerdefinierten Felder angeben kann?!

© 2016, since 2005 bueltge.de [by:ltge.de] · Theme is built by ThemeShift