Pregunta

Antecedentes: He estado tratando de leer la clasificación que se asigna en Adobe Bridge CS3 utilizando el conjunto de herramientas de metadatos comunes creativos para php sin éxito. Estoy usando alojamiento compartido, así que no tengo una oppotunity para php recompilación con diferentes módulos.

es el código php disponibles que podrían usarse para leer la clasificación que se incrusta en el archivo .jpg? He leído que este es un sitio Salir (XML) sección con formato dentro del archivo.

¿Fue útil?

Solución

Quiero poner mi solución aquí por si alguien tiene un problema similar y lee este hilo. Aquí es lo que encontré:
Windows Vista añadir la calificación a la sección EXIF ??incrustada en el archivo
Adobe Bridge añade otra sección al archivo jpg que contiene datos formateados en XML. La estructura + datos XML se conoce como el archivo XMP. Yo todavía no había procesado el archivo con Adobe puente, es por eso que yo era incapaz de leer los datos XMP con el kit de herramientas de metadatos.

El uso de la licencia Creative Commons - Metadatos kit de herramientas yo era capaz de leer las calificaciones utilizando el siguiente código. Este código forma parte de un módulo de Drupal, algunas de las variables que se hace referencia son los ajustes de Drupal: variable_get () es una función de Drupal para leer una variable de un almacén de datos perssistent.

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'];
        }   
      }
    }
  }

Lo hice necesidad de modificar el archivo EXIF_Tags.php en el kit de herramientas de metadatos mediante la adición de una entrada adicional a la matriz EXIF ??etiquetas. Informé al autor, pero no creo que se maintaing el módulo por más tiempo. La fuente está en SourceForge, pero no sé cómo publicar un parche. Así que puede que tenga que hacer el cambio a EXIF.php ti mismo para hacer que el código.

'EXIF' => array (

// Exif IFD

18246 => array ( 'Name' => "Rating",
                'Type' => "Numeric" ), 

Otros consejos

En teoría si se utiliza fgets que debe ser capaz de leerlo. Sería de gran ayuda si usted sabe dónde esta sección comienza en términos de bytes en el archivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top