Empfohlene PHP Code zu lesen Datei Rating Set von Adobe Bridge CS3
-
27-09-2019 - |
Frage
Hintergrund: Ich habe versucht, die Bewertung zu lesen, die in Adobe Bridge CS3 mit der Creative-Commons-Metadaten-Toolkit für PHP ohne Erfolg zugewiesen wird. Ich bin mit Shared-Hosting, damit ich keine oppotunity neu kompilieren PHP mit unterschiedlichen Modulen haben.
Ist PHP-Code zur Verfügung, die verwendet werden, um die Bewertung zu lesen, die in der JPG-Datei eingebettet ist? Ich habe gelesen, dass dies ein XMP (xml) formatiert Abschnitt innerhalb der Datei.
Lösung
ich meine Lösung hier, falls jemand anderes Posting hat ein ähnliches Problem und liest diesen Thread. Hier ist, was ich gefunden habe:
Windows Vista ??strong>, um die Bewertung zu dem in der Datei
eingebetteten EXIF-Abschnitt hinzufügen
Adobe Bridge ist ein weiterer Abschnitt in die jpg-Datei, die Daten formatiert in XML enthält. Die xml + Datenstruktur wird als XMP-Datei bezeichnet.
Ich hatte noch nicht verarbeitet, um die Datei mit Adobe Bridge, das ist, warum ich nicht in der Lage war, die XMP-Daten mit dem Metadaten-Toolkit zu lesen.
Mit dem Creative Commons - Metadaten Toolkit ich in der Lage war, die Bewertungen lesen Sie den folgenden Code verwenden. Dieser Code Teil eines Drupal-Modul ist, sind einige der referenzierten Variablen Drupal Einstellungen: variable_get () ist eine Drupal-Funktion eine Variable von einem perssistent Datenspeicher zu lesen.
include_once("PHP_JPEG_Metadata_Toolkit_1.11/JPEG.php"); include_once("PHP_JPEG_Metadata_Toolkit_1.11/Photoshop_File_Info.php"); include_once("PHP_JPEG_Metadata_Toolkit_1.11/EXIF.php"); include_once("PHP_JPEG_Metadata_Toolkit_1.11/XMP.php"); $photodir = variable_get('rotate_images_sourcefiles_dir',"sites/default/files/imageNodes"); $rating_threshold = variable_get('rotate_images_rating_threshold',3); $allImages=dir($photodir); $filenames = scandir($photodir); foreach($filenames as $filename){ $rating = null; $info = pathinfo($filename); if (strtolower($info['extension'])=="jpg"){ // First try to get the rating from the EXIF data, this is where it is stored by Windows Vista $exif = get_EXIF_JPEG( $photodir . "/" . $filename ); $rating = $exif[0][18246]['Data'][0]; $jpeg_header = get_jpeg_header_data($photodir . "/" . $filename ); // If no rating was found in the EXIF data, it may be in the Adobe format xmp section if ($rating == null){ 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]['xap:Rating']; } } } }
habe ich Notwendigkeit, die EXIF_Tags.php Datei in dem Metadaten-Toolkit zu ändern, indem Sie einen zusätzlichen Eintrag in dem EXIF-Tags Array hinzufügen. Ich meldete dies den Autor, aber ich glaube nicht, dass er das Modul nicht mehr maintaing. Die Quelle ist auf Source, aber ich weiß nicht, wie man einen Patch zu veröffentlichen. So können Sie die Änderung EXIF.php vornehmen müssen können sich den Code Arbeit zu machen.
'EXIF' => array ( // Exif IFD 18246 => array ( 'Name' => "Rating", 'Type' => "Numeric" ),
Andere Tipps
Theoretisch, wenn Sie fgets
verwenden sollten Sie in der Lage sein, es zu lesen. Es wäre hilfreich, wenn Sie wissen, wo dieser Abschnitt in Bezug auf die Bytes in die Datei beginnt.