Kommentare/Titel in ExiF und IPTC MetaTags werden nicht angezeigt Kommentare/Titel in ExiF und IPTC MetaTags werden nicht angezeigt
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

Kommentare/Titel in ExiF und IPTC MetaTags werden nicht angezeigt

Started by mivogt, July 20, 2007, 05:05:06 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

mivogt

Hallo Leute,

habe hier ein kleines Coppermine-Problem:

EXIF IPTC wird nicht vollständig ausgelesen.
Alle Kamera-Einstellungen werden angezeigt, nicht jedoch Titel/Kommentar.

Unter Linux kann ich in digiKam alle ExiF und IPTC MetaTags sehen und ändern.
Lade ich die Bilder mit den gänderten Tags für Titel/Beschreibung hoch so werden diese in Coppermin nicht angezeigt.

Wer hat einen Rat für mich?


CU


Michael

Coppermine Photo Gallery 1.4.12 (stable), Linux-Server

mivogt

Nachtrag: Wenn ich mir die Dateien ansehe (zB ein cat xy,jpg in der shell) dann sehe ich klar dass im ..Dateikopf.. meine Titeltexte vorkommen.
Eingeschlossen sind sie einmal mit

JFIF <Titel> EXIF

und später nochmal wiederholt
eingeleitet mit

ASCII <Titel> R98


Wäre das evtl. eine Grundlage einer Ergänzung von Coppermine - also die ersten paar hundert Byte auslesen und danach parsen und dann ausgeben was dazwischensteht und Bestandteil der druckbaren Zeichen ist?

Nur so als Idee/Anregung ...


CU

Michael


PS: in den autom. generierten Verkleinerungen _normal kommt der Header nicht mehr vor - nur im Originalbild.

Joachim Müller

vgl. http://forum.coppermine-gallery.net/index.php?topic=44462.msg211589#msg211589

Quote from: mivogt on July 20, 2007, 07:08:47 PM
in den autom. generierten Verkleinerungen _normal kommt der Header nicht mehr vor - nur im Originalbild.
Das ist nicht weiter überraschend: die image-libraries (GD oder IMG), die Coppermine benutzt zur Größenänderung unterstützen EXIF-Daten nicht.

mivogt

.. da ich nix finde um mein Post zu ergänzen ein rep. an mich selbst:
..... habe mal ein bissl nach möglichen Codeschnipseln gesucht und zwei Lösungen gefunden
(1) Auslesen der Datei ud manuelles bereinigen der Inhalte
(2) php-exif nutzen (fraglich da nicht immer unterstützt)

Zuerst ein Test meiner JPG dateien - im Head steht in der ersten Zeile immer der angelegte Kommentar so es einen gibt, eingeschlossen von JFIF und Exfif:

<FF><D8><FF><E0>^@^PJFIF^@^A^A^A^@`^@`^@^@<FF><FE>^@%Der Dom zu Berlin [Berlin 07-2007]^@<FF><E1>^W<FE>Exif^@^@II
*^@

Dazu nun ein Codeschnipsel zum lesen de ersten Zeile bis 1024 Zeichen Länge

## Einlesen einer einzelnen Zeile aus einer Datei - 1024Byte
$handle = fopen ("/PfadZumAlbum/inputfile.JPG", "r");
   $buffer = fgets($handle, 1024);
   echo $buffer;
fclose ($handle);
## ende einlesen
## es sollte nun nur noch$buffer nach JFIF <Titeltext> Exif durchsucht werden
## und nach Bereinigung auf druckbare Zeichen ausgegeben werden


(2) Oder eleganter mit der exif lib von php

ALternative:
# http://www.dynamicwebpages.de/php/function.exif-read-data.php

<?php
echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? "No header data found.<br />\n" : "Image contains headers<br />\n";

$exif = exif_read_data('tests/test2.jpg', 0, true);
echo "test2.jpg:<br />\n";
foreach ($exif as $key => $section) {
   foreach ($section as $name => $val) {
       echo "$key.$name: $val<br />\n";
   }
}
?>

## davon aus der Ausgabe nur folgende Zeile des Array wichtig für meine Zweck.
# COMPUTED.UserComment: Exif test image.
# COMPUTED.UserCommentEncoding: ASCII

Da es dann aber davon abhängt ob EXIF in PHP unterstützt wird oder nicht finde ich die unsaubere erste Lösung besser ...


mivogt

Hallo GauGau,

bis auf das Bereinigen von Sonderzeichen habe ich einen halbwegs brauchbaren Nudelcode erstellt:
Es ist Version 0.00000001ß aber es läuft
Anregungen, Verbesserungen willkommen

Das ganze müsste nur  in die Anzeigefunktion eingebunden werden und der fixe Dateiname durch den Namen der angezeigten Originaldatei ersetzt werden.
Eine Zusatzidee wäre es dann, im Popup die extrahierte Info ins <Head>..</Head> Tag zu setzen.
---------------------------------------------------------------------------------------------------------
<?php
#p1070.php
## Einlesen einer einzelnen Zeile aus einer Datei - 1024Byte
$handle fopen ("dsci1070.jpg""b");
   
$buffer fgets($handle1024);
   
#echo $buffer;

$string_eins=$buffer;
$string_zwei="JFIF";
$string_drei="Exif";
$treffer1=strpos($string_eins,$string_zwei)+4;
$treffer2=strpos($string_eins,$string_drei);
echo 
"<hl><hr>";
echo 
"<br>";echo "<br>";
# string start ende
$Zeile=substr($string_eins$treffer1$treffer2);
// Trimmen der ASCII Steuerzeichen an Anfang und Ende von $binary
// (inklusive der Zeichen von ASCII 0 bis 31)

$clean1 trim($Zeile"\x01..\x31");
$clean2 trim($clean1"\x7b..\xff");

# das bereinigen mit trim lappt leider nicht
# falls jmd was wi

echo $clean2;
echo 
"<br>";
echo 
$buffer;

echo 
"<br>";echo "<br>";
echo 
"<hl><hr>";
fclose ($handle);
## ende einlesen
## es sollte nun nur noch$buffer nach JFIF <Titeltext> Exif durchsucht werden 
## und nach Bereinigung auf druckbare Zeichen ausgegeben werden

?>

---------------------

[Edit GauGau] [ c o d e ]-Tags hinzugefügt [/Edit]

mivogt

Unter
http://www.offsky.com/software/exif/

ist eine code-sammlung unter GNU zum Auslesen von exif tags

Sofern das nicht rein zufällig eben jene ist die coppermine verwendet wäre es eine Alternative zur bisherigen Lib.

Bei mir werden damit zumindest die Comment Felder der JPGs korrekt ausgelesen - und darauf käme es mir an ...

Gruß aus LU


Michael

Joachim Müller

Ist genau die derzeit genutze Library, vgl. http://coppermine-gallery.net/demo/cpg14x/docs/index.htm#codebase

Leider wird das Projekt seit 18.02.2005 nicht mehr gepflegt:
QuoteDevelopment Closed: Unfortunatly, I no longer have the time to maintain this script. Hopefuly it works for you as is.
, vgl. auch meine Anmerkung, auf die ich schon in Deinem anderen Thread Bezug genommen habe:
Quote from: GauGau on June 14, 2007, 04:56:05 PM
Ich kann nicht ausschliessen, dass die Exif-Bibliothek, die wir innerhalb von Coppermine verwenden nicht mit den Exif-Metadaten umgehen kann, die Deine Kamera erzeugt. Leider wird die von uns verwendete Bibliothek nicht mehr weiter gepflegt. Leider leider ist EXIF kein Standard, an den sich alle halten: jeder Kamera-Hersteller kocht da sein eigenes Süppchen und ändert auch noch seine "hauseigenen" Spezifikationen mit fast jedem Kamera-Modell. Das ist bedauerlich, aber durch uns leider nicht zu ändern.
Wenn Du eine andere, bessere Exif-Bibliothek kennst, die wir nutzen könnten (muss unter GNU GPL oder vergleichbarer Lizenz vorliegen), dann nur her damit. Wenn Du Willens und in der Lage bist, die Exif-Bibliotheken selbst zu pflegen und zu aktualisieren: nur her damit - Beiträge wären höchst willkommen. Ansonsten muss ich sagen, dass wir in dieser Richtung wenig Know-How haben. Kommt es also (auch welchem Grund auch immer) zu fehlerhaften Darstellungen der Exif-Informationen, dann ist das im Einzelfall natürlich bedauerlich, aber nicht durch uns (die Coppermine-Entwickler) nicht zu ändern.

Exif und IPTC wird hauptsächlich von Foto-Profis benutzt. Die Masse der Benutzer kann damit nichts anfangen. Daher werden die Bibliotheken für Meta-Daten auch nur stiefmütterlich behandelt.

Verschmelze diesen Beitrag mit Deinem anderen über EXIF


Joachim Müller

mivogt per Kurznachricht:
Quote from: mivogt on July 20, 2007, 08:53:37 PM
Hallo GauGau,

habe mal eine Minilösung zusammengenudelt - das könnte so ungefähr passen.
Es wird einfach die erste Zeile der JPG ausgelesen und zT bereinigt.
An der Bereinigung habe ich noch zu knabbern.

Sofern du mir verraten kannst WO ich das in displayImage platzieren muss damit unter dem Bild die Zeile ausgegeben wird, oder du eBock hast einen mod zu versuchen ....

Habe den Code als Repl. auf meine Frage im Forum gelegt.

MFG

Michael
Bitte respektiere in Zukunft die Foren-Regeln, deren Einhaltung Du bei Registrierung zugestimmt hast: keine Kurznachrichten an die Entwickler oder Supporter ohne vorherige explizite Aufforderung durch sie. Steht auch so in meiner Signatur! Das schiere Aufkommen an Kurznachrichten ist für uns nicht zu bewältigen, und es gibt auch keinerlei Grund, nicht Sicherheits-relevante Daten partout direkt zu versenden. Stattdessen einfach einen öffentlich verfügbaren Beitrag verfassen - schließlich interessiert Dein Beitrag ja möglicherweise auch andere.

Joachim