Métadonnées Photo

Ce plugin permet d’afficher l’histogramme ainsi que les informations EXIF, GPS et IPTC d’un fichier JPEG.

L’affichage par défaut des métadonnées des images du portfolio

Le plugin Métadonnées Photo permet d’afficher différents types de métadonnées stockées dans les fichiers graphiques :
— les données IPTC (commentaires insérés « manuellement » par le photographe),
— les données EXIF (données techniques insérées automatiquement lors de la prise de vue),
— les données GPS (situation géographique tirée d’un positionnement GPS).

Les métadonnées au survol

Par défaut, les données apparaissent condensées dans un pavé vert de gris (oui : vert de gris... l’idée est d’imiter approximativement les afficheurs de certains appareils reflex). Ce pavé réduit affiche les données suivantes :
— des pictogrammes indiquent quelles métadonnées ont été récupérées : EXIF, GPS et/ou IPTC ;
— le nom et la marque de l’appareil de prise de vue ;
— pour de nombreux appareils photo, une petite vignette représentant ce modèle.

Lorsque l’on survole le pavé vert, il affiche immédiatement quelques données techniques (lorsque ces données sont présentes dans l’image, évidemment) :
— la sensibilité (ISO),
— la vitesse de la prise de vue (secondes),
— l’ouverture,
— la focale de l’objectif.

Les pavés « dépliés »

Lorsque l’on clique dans le pavé (ou sur le petit bouton « plus »), celui-ci s’agrandit et affiche toutes les métadonnées :
— les données EXIF : sensibilité, vitesse, ouverture, focale, utilisation du flash, ouverture maximale, objectif utilisé...
— les données IPTC : légende, copyright...
— les données GPS : latitude, longitude, et petite croix de l’emplacement sur une mappemonde.

La vignette de l’appareil est alors plus grosse. On peut encore cliquer sur la vignette de l’appareil et afficher l’image du modèle utilisé dans sa plus grande taille. (Note : les fichiers graphiques fournis par le plugin ont une dimension maximale de 256 pixels ; on peut donc encore utiliser une image plus grande, par exemple pour l’affichage sur le site public.)

Pour l’affichage des métadonnées sur votre site public (dans des squelettes de portfolio, ou dans des « modèles » inclus dans les articles), on utilisera les nouveaux filtres : lire_exif et lire_iptc.

On pourra s’inspirer des fichiers inc_exif.html et pave_exif.html pour en comprendre le principe, finalement assez simple, et récupérer la liste des types de médatonnées les plus pertinents.

La fonction histogramme requiert GD2.

Les informations EXIF sont manipulées, sans recours à l’extension EXIF de PHP, grâce au script de Vinay Yadav (sous licence LGPL).

Les informations IPTC nécessitent la fonction « iptcparse » de PHP et utilisent la classe « class_iptc » d’Alex Arica.

Attention : l’archive Zip de ce plugin est très volumineuse, et l’installateur automatique ne peut pas la récupérer. Il est donc nécessaire d’installer ce plugin à la main.

Discussion

9 discussions

  • 2

    Bonjour à Maïeul, et Phil, JC, Vilou et les autres,
    J’ai la très nette impression que le portage n’est pas encore programmé... as-tu avancé sur ce sujet de ton côté ?
    Pour ma part, je voudrais juste pouvoir obtenir la date de prise de vue, mais ne trouve aucune solution viable sous SPIP (actuellement en 4.1 php7, mais je vais passer en 4.2). Quelqu’un a une idée sur comment extraire cette donnée ?

    Répondre à ce message

  • 4

    Bonjour,

    un portage / nettoyage spip 4 est-il prévu ? pour savoir si je tente de degager du temps pour cela ... ou pas

    • Bonsoir,

      J’ai modifié la compatibilité dans le fichier paquet.xml
      Le plugin affiche les données iptc sur un spip 4.0.1 ce qui me suffit.
      Je n’ai pas les données exif.

      Merci

    • Ah oui, ce serait cool que quelqu’un porte ce plugin pour SPIP 4.

    • Je dirais même plus, ce serait super cool !

    • Oui, ce serait vraiment bien de mettre ce plugin sur la version 4.2.

      Merci au volontaires :-)

    Répondre à ce message

  • 3

    Bonjour

    J’utilise avec bonheur ce plugin associé au plugin galleria dans un modèle.

    Mais aujourd’hui, j’ai un souci.
    Sur ce site http://www.photoclubrebecq.be/spip/ et par exemple sur cette page http://www.photoclubrebecq.be/spip/spip.php?article252 les métadonnées ne s’affichent pas.

    En revanche 2 images récupérées sur le site et intégrées dans cet autre site http://escal.ac-lyon.fr/spip/spip.php?article177 affichent bien les métadonnées.

    Pourtant ces 2 sites sont sous spip 3.2.8

    J’ai vérifié le paramétrage, j’ai essayé de désactiver d’autres plugins, vérifié s’il n’y avait pas un mes_options.php ...

    Bref je ne trouve pas la source du problème.

    Si quelqu’un a une piste ...

    Répondre à ce message

  • 4

    Bonjour,

    Savez-vous si ce plugin fonctionne en PHP7 avec un spip 3.1.6. ?
    Je n’arrive pas à obtenir d’affichage des informations Exif dans l’espace privé par exemple.

    J’ai l’impression que la fonction lire_exif ne parvient à lire toutes les données exif nécessaires à l’éxécution du modèle de squelettes image_pave_exif :

    [(#SET{afficher,[(#GET{fichier}|lire_exif{make}|sinon{#GET{fichier}|lire_exif{model}}|sinon{[(#GET{fichier}|test_traiter_image{[(#GET{fichier}|largeur)], [(#GET{fichier}|hauteur)]})]}|sinon{[(#GET{fichier}|lire_iptc)]})]})]

    Lorsque je regarde ce qui est présent dans le tableau lire_exif sur une de mes photos je n’ai que :
    -  resolutionUnit=> 0
    -  FileName=> IMG/jpg/gravillons.jpg
    -  FileSize=> 330194 bytes
    -  FileDateTime=> 09-Oct-2017 22:28:52
    -  Height=> 750
    -  Width=> 1000
    -  IsColor=> 1
    -  Process=> 194
    -  resolution=> 1000x750
    -  color=> Color
    -  jpegProcess=> Progressive
    -  auxLens=>
    -  GPSLatitude=> 48° 23’ 0” N
    -  GPSLatitudeInt=> 48.003833333333
    -  GPSLongitude=> 4° 30’ 0” W
    -  GPSLongitudeInt=> -4.005

    alors que ma photo contient bien plus de données exif et les valeurs make, model testé dans la fonction spip sont bien présentes dans l’exif de ma photo mais non récupérées.

    Je n’ai pas vraiment de compétence en php pour débugger ce problème.
    Est-ce que la librairie exifReader.php (2005 d’après mes recherches) n’est pas un peu ancienne pour fonctionner correctement en php 7 ? une autre idée ?
    Merci d’avance
    Stéphane

    • Bonjour Stéphane,

      Justement j’ai fait une passe de compatibilité avec PHP7 hier (https://zone.spip.org/trac/spip-zone/changeset/106735). Cependant, également j’ai l’impression que toutes les informations ne sont pas correctement récupérées. La librairie PHP utilisée n’est plus maintenue ; il faudrait basculer sur une librairie plus récente je suppose.

      Matthieu.

    • Bonsoir,
      merci Matthieu pour ces précisions, en effet ta passe de compatibilité ne suffit pas j’ai re-testé avec la version 2.0.4 d’hier soir et c’est pareil. J’ai tenté ma chance avec l’extension exif de php mais elle est toute buggée dans ma version de php (7.0.21). Bref c’est un peu l’impasse, enfin pas totalement car j’arrive à récupérer des infos exif de latitude/longitude sur certaines de mes photos avec le script fourni... donc en bidouillant un peu le code de lire_exif je devrai m’en sortir. Je ne pensais que les exif étaient aussi pourris à gérer ( ça parle encodage, lecture binaire, big indian &co pffffff que du plaisir !). Pour le coup je voulais me faciliter la tâche en récupérant la géolocalisation des photos dans l’exif mais si ça continue je vais devoir la gérer depuis GIS en cliquant sur une carte.

      Si quelqu’un a des pointeurs pour expliquer l’exif voire même même mieux une nouvelle librairie pour remplacer celle de 2005 je suis preneur ! La suite demain donc.

      Merci encore !
      Stéphane

    • Lorsque tu cherches une lib récente à jour, tu peux passer par le packagist. Ça aide à trouver des librairies populaires et souvent maintenues. https://packagist.org/?q=exif&p=0

      Du coup, tu trouves par exemple (parmi d’autres) :
      -  https://github.com/PHPExif/php-exif
      -  https://github.com/pel/pel

      MM.

    • Bonsoir,
      En effet on trouve quelques librairies :-) , pour celles que tu cites :
      *php-exif : il faut pouvoir exécuter du perl en commande sur le serveur (la lib exiftool qui semble faire référence , je pense que l’on peut l’exclure pour notre usage. Elle peut aussi être branchée sur la fonction native de php mais qui semble pas toujours stable...
      *pel : j’obtiens de bons résultats mais j’ai l’impression qu’ il y a du boulot pour le brancher sur ce plugin spip...
      Sinon :
      PHPExiftool : branchée sur exiftool aussi

      A voir si pel peut être intégré sans trop de mal avec Metadonnees photo.
      Merci pour les infos.

    Répondre à ce message

  • Quelle librairie PHP faut il de préférence utiliser pour écrire des data IPTC dans les fichiers images ?
    Il ya une petite fonction dans les commentaires de la doc php de iptcembed
    et j’ai trouvé une librairie beaucoup plus grosse ici http://www.ozhiker.com/electronics/pjmt/index.html
    mais je ne sais pas ce qu’elles valent...

    Répondre à ce message

  • Pierre Pringels

    Avec le squelette ESCAL est offerte la possibilité de visualiser les métadonnées dans la partie publique du site.

    Voir à ce sujet cette application :
    http://www.photoclubrebecq.be/spip/

    Bonne chance à tous !

    Répondre à ce message

  • 6
    Thiébaut

    Bonjour, je ne sais si ce forum est toujours actif... mais si par hasard quelqu’un avait la réponse à cette simple question : que faut-il adjoindre à lire_exif pour obtenir les dates et heures de prise de la photo ?

    J’ai essayé [(#GET{fichier}|lire_exif{dateExif})], mais rien ne se passe.

    Apparemment, c’était possible avec cet autre plugin sous spip 1.9

    Merci !

    • Laurent J

      Bonjour. J’ai le même besoin... Y a-t-il une solution ?

    • Thiébaut

      En tous les cas... je n’en ai toujours pas trouvée. Et ce forum semble abandonné. Dommage...

    • Pour récupérer la date, il faut faire

      [(#GET{fichier}|lire_iptc{createdDate})]

      Mais on récupère une date YYYYMMDD que Spip ne semble pas pouvoir utiliser…

      Ainsi

      [ (#GET{fichier}|lire_iptc{createdDate}|affdate)]

      ne donne rien.

    • Mais en filtrant l’image avec une expression régulière, on peut appliquer le filtre, et tout le monde est content :

      [(#FICHIER|lire_iptc{createdDate}|replace{^(.{4})(..)(..),$1-$2-$3}|affdate)]
    • Encore un petit truc pour boucler les photos par date de création :

          [(#REM) Pour obtenir les photos dans l'ordre sans avoir à les dater :
          1./ on concatène les champs les métadonnées de date et d'heure de création
          2./ on met tout cela dans un tableau
          3./ on boucle sur le tableau ]
          <BOUCLE_rubdoc2(DOCUMENTS){id_article}{par date}>
            #SET{element, #ARRAY{fichier,#FICHIER|image_passe_partout{1921,1000}|extraire_attribut{src},date,#FICHIER|lire_iptc{createdDate}|concat{#FICHIER|lire_iptc{createdTime}},titre,#TITRE|texte_backend}}
            #SET_PUSH{elements,#GET{element}}
          </BOUCLE_rubdoc2>
      
          <BOUCLE_elements(POUR){tableau #GET{elements}}{par  date}{','}>
      [(#LOGO_DOCUMENT)]
          </BOUCLE_elements>

      Cela évite de dater une à une des photos televersées dans le désordre.

    • Super ! Merci beaucoup ! ;-)

    Répondre à ce message

  • Les informations IPTC nécessitent la fonction « iptcparse » de PHP et utilisent la classe « class_iptc » d’Alex Arica.

    il y a-t-il un moyen de savoir si cette fonction « iptcparse » est active sur le serveur chez l’hébergeur du site ?

    Merci d’avance

    Répondre à ce message

  • Bonjour,
    je n’arrive pas à obtenir les données exif de mes photos.

    Je suis en version SPIP 2.1.11, j’utilise Sarka spip et Médiathéque.
    J’ai du rater une marche dans l’installation, mais où ?

    Cordialement.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom