Exif

Exif

Im Prinzip bin ich ein sehr ruhiger und gelassener Mensch. Wobei im Prinzip natürlich im Prinzip nichts bedeutet. Wenn Dinge gegen alle Logik nicht so funktionieren, wie sie sollten, kann mich das bis zur Jähzornsgrenze aus der Ruhe bringen.

Für myGallery arbeite ich gerade am Thema Exif. Diverse Kamerahersteller kochen zum Teil ihr eigenes Süppchen, was was aber nicht weiter schlimm ist. Wesentlich schlimmer ist, daß diverse Grafikprogramme und vor allem aber die GD library den Exif Header nicht erhalten. Werden Bilder zum Beispiel mit Fireworks verkleinert und gespeichert, geht der Header verloren. Gleiches passiert, wenn myGallery ein Bild verkleinert. Genau genommen wird dabei ein neues Bild erzeugt, in das dann ein verkleinertes Ursprungsbild kopiert wird.

Mit den Funktion iptcemped und iptcparse bietet PHP zwei Funktionen, um den binären Header einer JPEG-Datei zu parsen und zu schreiben. Dumm nur, daß beide nicht funktionieren. Keines der offiziellen Beispiele bietet was brauchbares. Sehr verwundert hat mich auch, daß die funktionierende Skripte, die ich mir angesehen habe, nicht die beiden Funktionen verwenden. Stattdessen wird der der Header manuell durch eine Dateioperation eingelesen, gespeichert und wieder geschrieben. Über das Parsen der Daten schweige ich lieber, denn das sah in den Skripten sehr gruselig aus.

Merkwürdig ist, daß sich mit exif_read_data die Exif-Daten bequem in einen Array einlesen lassen. Eine vergleichbare Funktion zum schreiben der Daten gibt es anscheinend nicht. Um jetzt nicht riesige Fremdskripte in myGallery einzubinden, werde ich wohl auch ein eigenes Modul schreiben müssen, daß die Header ausliest und nach der Skalierung wieder zurück schreibt.

8 Replies to “Exif”

  1. Mmh,… ich bin mir jetzt nicht sicher, ob imagemagick bei der Bildbearbeitung die EXIF-Daten wieder richtig speichert, denke aber schon.

    Wenn ich Bilder online (via PHP o.ä.) bearbeite, nutze ich eigentlich nur imagemagick – die Qualität von den GD Biblitoheken lässt doch meist zu wünschen übrig, bzw. ist nicht vergleichbar mit der von imagemagick.

  2. Ich weiß nicht, ob imagemagick überall auf den Servern vorhanden ist. GD ist recht verbreitet (was aber wie bei Windows nichts in Bezug auf die Qualität sagt ;-)

  3. hi!
    Gibts da irgendwas neues? habe naemlich aktuell genau das Problem, wollte deine geniale Gallerie bissel umschreiben, damits die Bilder verkleinert und ablegt und vom original ne Kopie erstellt, aber irgendwie geht das mit den Exifdaten nicht.
    Hocke in Australien und kann hier die Bilder nicht aufm PC verkleinern, sondern nur im Netz….

  4. @sniper.de: Das Problemn ist einfach, dass sich die verwendete Grafikbiliothek nicht so gut auf Exif-Daten vertseht. Werden Bilder verkleinert, verschluckt sie einfach die Exif-Daten. Zwar könnte ich eine andere Grafikbiliothek verwenden, abver diese ist nicht auf allen Server vorhanden – damit wäre dann myGallery für die meisten überhauptnichtmehr zu gebrauchen.

  5. ja schon, aber kann man das nicht so machen, dass einfach BEIDE Libraries unterstuetzt werden? Das Skript koennte ja automatisch erkennen, welche vorhanden ist, oder man stellt es bei den Settings ein.
    Weil ich scheitere gerade daran, dass ich bilder im Internet skalieren muss, aber GD die Exifs schluckt. Und Imagemagick kann ich einfach nicht bedienen, da kenn ich die befehle nicht bzw. weiss nicht, wie ich das in nem Php-Skript abarbeiten kann.
    Leider nuetzen saemtliche Galerien nur GD… :(

  6. hey tbloey,

    thx für mygallery!
    Ich bin schon seid fast 2 Monaten auf der Suche nach einer einfachen, komfortablen und Umfangreichen Gallery….hatte schon mit gallery2 mich rumgeschlagen.
    Nun versuch ich mein Glück mit deinem Stuff ;-)

    2 Probs hab ich:

    1.) Ich hab das Gefühl, dass GD-Lib Probleme hat, wenn mehr als 100 Files auf einmal bearbeitet werden sollen?
    Hatte nun auch alle Daten myfoto-folder + Pics + tumbs-folder auf 777 gestellt (und den tumbs von Hand angelegt)….dann packt er 100,…

    2.) Ich hab Fotos von meiner EOS eingespeisst, wo die Orientation über EXIF eingetragen ist, leider werden die weder bei den thumbs noch bei den original unveränderten Bilder erhalten…

    Vielleicht hast ja nen Tip auf Lager,..thx.

    Greetz dermessie

Kommentar verfassen

über Thomas Boley

Geboren wurde ich im Jahre des Herren 1971 in Wesel am Niederrhein – die Kommentare an dieser Stelle bezüglich des Bürgermeisters bitte verkneifen! Mein Verhältnis zu dieser Stadt würde wohl den Umfang dieser Seite sprengen. Nur soviel sei gesagt: Es ist durchaus durchwachsen, worin es sich aber nicht von meinem Verhältnis zu Bielefeld unterscheidet. Nach dem üblichen Werdegang (Kindergarten, Schule, Abitur, Zivildienst) und den üblichen jugendlichen Irrungen und Wirrungen verschlug es mich zum Studium nach Bielefeld verschlagen. 18 Jahre später ging es dann zurück an den Rhein, in die Domstadt Köln. mehr erfahren