Données IPTC

Petit nouveau ! | 6 Messages

30 oct. 2007, 11:55

Bonjour,

Je poste dans cette partie du forum, car je ne suis pas 1 AS du PHP... (mais j'me débrouille quand même ^^)

Je vous explique mon problème :

La, je suis en train de créer une galerie pour une école d'art...

Donc les élèves m'apportent leurs images, moi je dois les mettre en ligne dans une galerie toute fait en PHP...

Mes boss m'ont demandé quand on clique sur une image s'a l'ouvre en pop-up... et que dans ce pop-up il y a la description et le nom de pour chaques images...

En me reseignant un peu sur la toile, j'ai découvert que je devai récupérer et utiliser les données IPTC de l'image...

Est-ce que qqn sait comment ça marche tout cela ?

Merci d'avance... 8-)

Ps : Si vous voulez voir ce que sa donne ma galerie (peut être sa px vous aidez) :

CLIQUEZ ICI POUR VOIR MA GALLERIE DE TEST ;-)
Image
Image

ViPHP
ViPHP | 4039 Messages

30 oct. 2007, 12:09

Ben il y la la fonction iptcparse() dans php, qui permet de lire les données IPCT..

voici toujours une fonction tirée des commentaires de la doc (php.net), qui devriat montrer toutes les données IPCT d'une image:

Code : Tout sélectionner

function output_iptc_data( $image_path ) { $size = getimagesize ( $image_path, $info); if(is_array($info)) { $iptc = iptcparse($info["APP13"]); foreach (array_keys($iptc) as $s) { $c = count ($iptc[$s]); for ($i=0; $i <$c; $i++) { echo $s.' = '.$iptc[$s][$i].'<br>'; } } } }
ça te permettra déjà d'avancer.. mais une question, il est certain que les données sont a chaque fois présentes et suffisament controlées que pour être affichées (un contrôle qualitatif quoi) ?
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

30 oct. 2007, 12:11

L'iptc est un standard pour stocker des métadata dans des fichiers. Si tes images les utilisent tu peux effectivement venir y lire les titres, descriptions etc. qui y ont été renseignées lors de l'édition de la photo.

En php, la fonction iptcparse() (à utiliser avec getimagesize()) te retourne un tableau associatif avec les clés/valeurs trouvées dans le fichier. Tu devrais donc pouvoir les lire et les récupérer sans trop de difficulté.

L'inconvénient, c'est que pour des modifications il te faut un logiciel du genre toshop pour éditer les tags et écraser le fichier sur le serveur.


A voir ensuite s'il ne vaut pas mieux privilégier une solution avec un base de données te permettant d'associer à chaque image un titre, une description, etc. bien plus facilement modifiable et évolutive :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 6 Messages

30 oct. 2007, 12:30

Merci, je vais essayer tous cela. Je vous tiens au courant :)
Image
Image

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 oct. 2007, 12:42

A voir ensuite s'il ne vaut pas mieux privilégier une solution avec un base de données te permettant d'associer à chaque image un titre, une description, etc. bien plus facilement modifiable et évolutive :)
Je suis plus de cet avis.

Es tu sur qu'on t'aie demandé les données exif (IPTC) ?
D'apès ce que tu dis
Mes boss m'ont demandé quand on clique sur une image s'a l'ouvre en pop-up... et que dans ce pop-up il y a la description et le nom de pour chaques images...
Me semble que c'est beaucoup par rapport à ce qui t'es demandé :-k

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 6 Messages

30 oct. 2007, 16:47

A voir ensuite s'il ne vaut pas mieux privilégier une solution avec un base de données te permettant d'associer à chaque image un titre, une description, etc. bien plus facilement modifiable et évolutive :)
Je suis plus de cet avis.

Es tu sur qu'on t'aie demandé les données exif (IPTC) ?
D'apès ce que tu dis
Mes boss m'ont demandé quand on clique sur une image s'a l'ouvre en pop-up... et que dans ce pop-up il y a la description et le nom de pour chaques images...
Me semble que c'est beaucoup par rapport à ce qui t'es demandé :-k
Alors oui oui, certain que je dois bien aller recueillir et utiliser les données IPTC de l'image...

C'est fesable a ton avis ?
Image
Image

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 oct. 2007, 16:53

S'il y a des fonctions prévues pour oui je pense que c'est faisable :wink:

Ceci dit... tu peux récupérer les données exif une fois les stocker dans une BD et t'en servir lors de l'affichage... un mix des deux propositions de Ryle

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 6 Messages

30 oct. 2007, 16:54

S'il y a des fonctions prévues pour oui je pense que c'est faisable :wink:
Okay merci :) ! Sa me rassure :P
Image
Image

Petit nouveau ! | 6 Messages

31 oct. 2007, 18:09

Voila c'est résolu... je vous met le code :)

Code : Tout sélectionner

<?php // Feuille de style echo "<link rel='stylesheet' type='text/css' href='../CSS/styleCEPV.css'>"; // extraction des informations IPTC du fichier image $size = getimagesize($imageshq.$var, $info); if (isset($info["APP13"])) { $iptc = iptcparse($info["APP13"]); // lecture des information sélectionnées $titre = mb_convert_encoding(macRomanToIso($iptc['2#005'][0]),"utf-8", "ISO-8859-1"); $description = mb_convert_encoding(macRomanToIso($iptc['2#120'][0]),"utf-8", "ISO-8859-1"); // $auteur = mb_convert_encoding($iptc['2#080'][0],"utf-8", "ISO-8859-1"); $auteur = mb_convert_encoding(macRomanToIso($iptc['2#080'][0]),"utf-8", "ISO-8859-1"); echo "<br /><centre><font class='textegris'>$titre<br />$description<br />$auteur</font></centre>"; } // conversion de l'encodage Mac OS Roman en Iso function macRomanToIso($string) { return strtr($string, "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b \x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97 \x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa1\xa4\xa6\xa7 \xa8\xab\xac\xae\xaf\xb4\xbb\xbc\xbe\xbf\xc0\xc1 \xc2\xc7\xc8\xca\xcb\xcc\xd6\xd8\xdb\xe1\xe5\xe6 \xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf1\xf2\xf3 \xf4\xf8\xfc\xd2\xd3\xd4\xd5", "\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3 \xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3 \xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\xb0\xa7\xb6\xdf\xae \xb4\xa8\xc6\xd8\xa5\xaa\xba\xe6\xf8\xbf\xa1\xac \xab\xbb\xa0\xc0\xc3\xf7\xff\xa4\xb7\xc2\xca\xc1 \xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\xd2\xda\xdb\xd9 \xaf\xb8\x22\x22\x27\x27"); } ?>
Image
Image

Fletcher
Invité n'ayant pas de compte PHPfrance

10 avr. 2012, 13:35

Une éternité que je cherchais un code permettant la gestion des accents à partir d'ITPC !

Un gigantesque merci pour ce partage !!

;-)