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.

War es hilfreich?

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 , 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top