Suggerito di codice php per leggere il file valutazione di Adobe Bridge CS3
-
27-09-2019 - |
Domanda
Sfondo: Ho cercato di leggere il rating che viene assegnato in Adobe Bridge CS3 utilizzando i Metadati creative commons toolkit per php senza successo.Sto usando di hosting condiviso, quindi non ho un ' occasione per ricompilare php con diversi moduli.
È un codice php che possono essere utilizzati per leggere la valutazione che è incorporato nella .il file jpg?Ho letto che questo è un xmp (xml) formattato sezione all'interno del file.
Soluzione
Sto postando la mia soluzione nel caso in cui qualcun altro ha un problema simile e legge questo thread.Ecco cosa ho trovato:
Windows Vista aggiungere la valutazione di exif sezione incorporati nel file
Adobe Bridge aggiunge un'altra sezione per il jpg e il file che contiene i dati formattati in xml.Xml + struttura di dati è definito come il file xmp.Io non avevo ancora elaborato il file con Adobe bridge, che è il motivo per cui ero in grado di leggere i dati xmp con i Metadati toolkit.
Utilizza la Creative Commons - Metadati toolkit sono stato in grado di leggere le classificazioni utilizzando il seguente codice.Questo codice fa parte di un Modulo Drupal, alcune delle variabili di riferimento sono Drupal impostazioni:variable_get() è un sito in Drupal funzione per la lettura di una variabile da una perssistent archivio dati.
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']; } } } }
Ho bisogno di modificare il EXIF_Tags.php file di metadati toolkit aggiungendo una voce aggiuntiva per il Tag EXIF array.Ho segnalato all'autore, ma non credo che lui è che mantenendo il modulo più.La fonte è su sourceforge, ma non so come postare una patch.Quindi potrebbe essere necessario apportare la modifica EXIF.php voi a fare il lavoro di codice.
'EXIF' => array ( // Exif IFD 18246 => array ( 'Name' => "Rating", 'Type' => "Numeric" ),
Altri suggerimenti
In teoria, se si utilizza fgets
si dovrebbe essere in grado di leggerlo. Sarebbe utile se si sa dove questa sezione inizia in termini di byte nel file.