| 

.NET C# Java Javascript Exception

3
Hallo

Ich habe ein Bild mit einer Bewertung, zB aus Lightroom, Adobe Bridge..., diese "Sterne" werden ja in die Bilddaten geschrieben.

Wie kann ich diese auslesen?
$exif = exif_read_data('bild.jpg', 'IFD0');
bringt mir ja so einige Daten, aber nicht die gewünscht?

Grüße
News:
08.08.2014
meone 99 1 6
meone 99 1 6
Was siehst Du denn in den EXIF Daten, wenn Du das mit einem Programm wie IrfanView ausliest? Stehen dann die gewünschten Daten drin?
Xantiva 11.08.2014
IrfanView gibts jetzt nicht auf dem Mac. Aber in den Exif Daten direkt habe ich es nicht entdeckt. Aber Bewertungen werden ja von vielen (zB Adobe Programme wie Bridge, Lightroom, aber auch zB Media Pro, iView) Programmen irgendwie direkt in die Datei geschrieben (ohne eine XMP Datei oder einen Katalog) - denn ich kann ja die einzelne Datei duplizieren, umbennen, an einen ganz anderen Ort verschieben und zB in Adobe Bridge oder auch iView, MediaPro usw sind die Bewertungen direkt drin.

Für mich sollte sowas "Standard" bei einer Webgalerie sein, komisch das ich nichts finde.
meone 11.08.2014
3 Antworten
1
Wie im dem zweiten SO Artikel zu lesen war, legt Adobe Bridge das Rating nicht in den EXIF Daten sondern im JPG Header ab. Habe hier ein Beispiel, wie Du es auslesen kannst:

<?php 
include_once("PHP_JPEG_Metadata_Toolkit_1.11/EXIF.php");

echo "bild.jpg: ".GimmeStarsDude("bild.jpg")." Sterne<br />";
echo "bild2.jpg: ".GimmeStarsDude("bild2.jpg")." Sterne<br />";

function GimmeStarsDude($filename)
{
$rating = -1;

$jpeg_header = get_jpeg_header_data($filename );
if ($jpeg_header != false){
$xmp = get_XMP_text($jpeg_header);
$xmpArray = read_XMP_array_from_text($xmp);
$rating = $xmpArray[0]['children'][0]['children'][0]['attributes']['xmp:Rating'];
}
return $rating;
}
?>

Das Ergebnis sieht so aus:
bild.jpg: 2 Sterne
bild2.jpg: 5 Sterne


Achtung: Ist Quick & Dirty Code, bitte so nicht in produktiven Code übernehmen, hier finden keinerlei Überprüfungen statt. Sollte eher als "Starthilfe" dienen - daher auch dieser Funktionsname ;)
17.08.2014
Jaksa 4,0k 1 8
Es funktioniert. Danke. Du bist mein Held!
Super. Werde ich dann demnächst umbauen und anpassen... herrlich :-)
meone 18.08.2014
1
Nein hatte ich noch nicht, danke für den Tipp. Damit bekomme ich die Beschreibung immerhin ausgelesen, aber von dem Rating keine spur.


$exif = get_EXIF_JPEG($filename);
echo "<pre>";print_r($exif);echo "</pre>";

Mit Bridge + Expression Media 2 die Wertung vorgenommen, bei beiden taucht nirgends ein Eintrag der dem Rating entsprechen könnte auf :-/
meone 11.08.2014
Du hast aber schon gesehen, dass es mehrere Ratings gibt
Jaksa 11.08.2014
In dem oben genannten Array taucht nicht 1 einziges Rating auf - da bringt es auch nichts wenn es mehrere gibt... .

??
meone 13.08.2014
poste mal eine URL zu so einem Bild, ich kann's mir am Wochenende anschauen.
Jaksa 13.08.2014
gerne.

http://www.kalterwind.de/demo/galerie/bilder/bild.jpg
http://www.kalterwind.de/demo/galerie/bilder/bild2.jpg

Habe ich frisch von der Seite und dann mal in zB Expression Engine reingeladen (ist beides mal das gleiche Bild), nur einmal mit 2 und einmal mit 5 Sternen, siehe Screenshot:http://www.kalterwind.de/demo/galerie/bilder/screen.png

Ich habe wie gesagt auch nicht nach dem Wort "Rating" gesucht, sondern einfach etwas was den Werten entsprechen könnte und auch da nichts gefunden :-(
Danke für deine Hilfe.
meone 13.08.2014
0
Niemand eine Idee?
Die Daten werden doch irgendwie auch im Bild gespeichert, wie die anderen Dinge die man auslesen kann :-/
11.08.2014
meone 99 1 6

Stelle deine Php-Frage jetzt!