IPTC et phototeque

Bonjour,

je cherche à faire un site de type phototeque en sip.

La norme IPTC permet de renseigner des données d’une photo (titre, date, mots clés…).

Existe-t-il une solution pour éviter de re saisir ces données lors de l’importation des images dans SPIP?

Merci

Bonjour,

je cherche à faire un site de type phototeque en sip.

La norme IPTC permet de renseigner des données d’une photo (titre, date, mots clés…).

Existe-t-il une solution pour éviter de re saisir ces données lors de l’importation des images dans SPIP?

Si tu parle des données EXIF, il y a un plugin qui gère ce genre de choses je crois. Cherche sur spip-contrib.

Le 07/03/07, Olivier GENDRIN <o.gendrin@novactive.com > a écrit :

Bonjour,

je cherche à faire un site de type phototeque en sip.

La norme IPTC permet de renseigner des données d’une photo (titre, date, mots clés…).

Existe-t-il une solution pour éviter de re saisir ces données lors de l’importation des images dans SPIP?

Si tu parle des données EXIF, il y a un plugin qui gère ce genre de choses je crois. Cherche sur spip-contrib.


Non je parle bien des métadonnées IPTC. (utilisées par photoshop par ex)

Beru Beru wrote:

La norme IPTC permet de renseigner des données d'une photo (titre, date, mots clés...).

Salut,

J'commençais il y a des mois a faire quelque chose en PHP pour lire des champs IPTC, mais je ne l'ai pas continué car celui pour qui je le faisais s'avérait pas si intéressé après tout...

Il s'agit d'utiliser getimagesize()

et iptcparse()

Par exemple :

<?php
$size = &GetImageSize ("cover1.jpg",$info);
$iptc = iptcparse ($info["APP13"]);
if (isset($info["APP13"])) {
  $iptc = iptcparse($info["APP13"]);
  if (is_array($iptc)) {
            $caption = $iptc["2#120"][0];
        $object_name = $iptc["2#005"][0];
    $copyright = $iptc["2#116"][0];
    // etc....
  }
}

echo "A few IPTC fields from this image: <br><br>";

echo "Object name: " . $object_name . "<br>";
echo "Caption: " . $caption . "<br>";
echo "Copyright: " . $copyright . "<br>";
?>

J'imagine que faire une balise (des balises) pour SPIP serait facile, pourtant je ne m'y connais pas. J'espère que ceci pourrait t'aider

Paolo

Le 08/03/07, Paolo <paolo2@taize.fr> a écrit :

Beru Beru wrote:

La norme IPTC permet de renseigner des données d’une photo (titre, date,
mots clés…).

Salut,

J’commençais il y a des mois a faire quelque chose en PHP pour lire des
champs IPTC, mais je ne l’ai pas continué car celui pour qui je le
faisais s’avérait pas si intéressé après tout…

Il s’agit d’utiliser getimagesize()
http://fr.php.net/manual/en/function.getimagesize.php

et iptcparse()
http://fr.php.net/manual/en/function.iptcparse.php

Par exemple :

<?php $size = &GetImageSize ("cover1.jpg",$info); $iptc = iptcparse ($info["APP13"]); if (isset($info["APP13"])) { $iptc = iptcparse($info["APP13"]); if (is_array($iptc)) { $caption = $iptc["2#120"][0]; $object_name = $iptc["2#005"][0]; $copyright = $iptc["2#116"][0]; // etc.... } } echo "A few IPTC fields from this image:

"; echo "Object name: " . $object_name . "
"; echo "Caption: " . $caption . "
"; echo "Copyright: " . $copyright . "
"; ?>

J’imagine que faire une balise (des balises) pour SPIP serait facile,
pourtant je ne m’y connais pas. J’espère que ceci pourrait t’aider

Paolo


Je ne suis pas un pratiquant de Php.

Que faire de ce bout code en php?
Le placer dans une boucle? dans un fichier appelé?

Beru Beru a écrit :

    _______________________________________________
    Je ne suis pas un pratiquant de Php.

Que faire de ce bout code en php?
Le placer dans une boucle? dans un fichier appelé?

Tu peux modifier le modèle img.html (dans dist/modeles à sauvegarder dans squelettes/modeles) pour intégrer les données IPTC.

Dans la pratique, je ferais un filtre iptc (à mettre dans mes_fonctions.php) avec le code proposé par Paolo. Plus précisemment, il faudrait un 2e argument pour retourner le champ désiré.

function iptc($image, $champ) {
     $size = &GetImageSize ("cover1.jpg",$info);
     $iptc = iptcparse ($info["APP13"]);
     if (isset($info["APP13"])) {
         $iptc = iptcparse($info["APP13"]);
         if (is_array($iptc)) {
             switch ($champ) {
                 case "caption" : $return = $iptc["2#120"][0]; break;
                 case "object_name" : $return = = $iptc["2#005"][0]; break;
                 case "copyright": $return = $iptc["2#116"][0]; break;
                 // etc....
             }
         }
     }
     return $return;
}

Ensuite dans img.html tu peux rajouter les valeurs, par exemple :
caption : [(#FICHIER|iptc{caption})]
date : [(#FICHIER|iptc{date})]

Maintenant je ne connais pas IPTC, donc à toi de voir quels sont les champs fournis...

BMR

Le 08/03/07, BMR <bmr@ediweb.org> a écrit :

Beru Beru a écrit :


Je ne suis pas un pratiquant de Php.

Que faire de ce bout code en php?
Le placer dans une boucle? dans un fichier appelé?

Tu peux modifier le modèle img.html (dans dist/modeles à sauvegarder
dans squelettes/modeles) pour intégrer les données IPTC.

Dans la pratique, je ferais un filtre iptc (à mettre dans
mes_fonctions.php) avec le code proposé par Paolo. Plus précisemment, il
faudrait un 2e argument pour retourner le champ désiré.

function iptc($image, $champ) {
$size = &GetImageSize (« cover1.jpg »,$info);
$iptc = iptcparse ($info[« APP13 »]);
if (isset($info[« APP13 »])) {
$iptc = iptcparse($info[« APP13 »]);
if (is_array($iptc)) {
switch ($champ) {
case « caption » : $return = $iptc[« 2#120 »][0]; break;
case « object_name » : $return = = $iptc[« 2#005 »][0]; break;
case « copyright »: $return = $iptc[« 2#116 »][0]; break;
// etc…
}
}
}
return $return;
}

Ensuite dans img.html tu peux rajouter les valeurs, par exemple :
caption : [(#FICHIER|iptc{caption})]
date : [(#FICHIER|iptc{date})]

Maintenant je ne connais pas IPTC, donc à toi de voir quels sont les
champs fournis…

BMR


Faire un filtre IPTC, c’est la bonne idée!

mais bon je ne connais pas php.
Mais je vais essayer.