Bonjour,
J'ai découvert phpwebgallery et j'avoue que c'est le meilleur programme que j'ai pu trouvé dans sa catégorie. Je l'ai donc utilisé pour mettre mes photos de vacances.
Je voulais aussi pouvoir y ajouter des commentaires, ce que propose phpwebgallery, mais je voulais que ceux-ci soient intégrés à l'image et je n'avais pas l'intention de les rentrer une deuxième fois dans la base de données de phpwebgallery. La solution que j'ai retenu fu d'utiliser les tags EXIF des images. Ce sont des informations ajoutées par les appareils photo numériques au début des fichiers jpeg (on peut les lire et les modifier entre autre avec ACDSee). Il existe en particulier le tag Imagedescription mais on peut se servir aussi des autres.
Le problème fut alors d'intégrer ce tag de description à la page affichant les photos. Après quelques heures de recherche et d'essais j'ai fini par trouver.
Il faut utiliser la fonction read_exif_data qui renvoie un tableau avec les informations EXIF. Attention, cela ne fonctionne que sur php 4 compilé avec une option du genre "enable exif" (mais heureusement ça fonctionne sur free).
J'ai donc ajouté au fichier photo.php les lignes suivantes juste au dessus de la ligne if ( $page['author'] != "" ) :
$exif = read_exif_data($lien_image); while(list($k,$v)=each($exif)) { if ($k=='ImageDescription' && !($k=='ACD Systems Digital Imaging')) { echo " <tr><td style="font-weight:bold;">description : </td><td style="text-align:right;">".$v."</td></tr>"; } };
Comme vous pouvez le voir, on affiche ainsi juste le tag ImageDescription. La deuxième condition sert à éviter un petit problème du à l'insertion d'un tag parasite par ACDSee lorsque l'on redimmensionne les images.
Je tiens à signaler que je n'ai jamais programmé en php, disons que je bidouille. Je ne sais pas si l'utilisation des tages EXIF intéresse quelqu'un d'autre mais je voulais juste publier ce que j'avais trouvé, d'autant plus que l'on peut aussi intégrer les dates de prise de vue de la photo et ça c'est vraiment intéressant. Alors, pourquoi pas une gestion de ces tags dans une prochaine version ? ;-)
J'ai encore amélioré un peu l'utilisation des tags.
Maintenant, j'affiche la date et leur à laquelle la photo a été prise (information enregistrées dans les tags EXIF et qui ne demande qu'à être utilisée).
J'ai aussi modifié le script pour qu'il affiche le commentaire enregistré par phpwebgallery puis si celui-ci est vide la description contenue dans les tags EXIF.
Si vous voulez un exemple, c'est :
http://sebastien.lienard.free.fr/photos … mp;id=xM6b
J'aimerais bien avoir l'avis de l'auteur du script quand il sera rentré.
Je vous mets les quelques lignes de code que j'ai modifié dans le fichier photo.php :
if ( $page['comment'] != "") { echo"<div class="commentImage">".$page['comment']."</div>"; } else { $exif = read_exif_data($lien_image); while(list($k,$v)=each($exif)) { if ($k=='ImageDescription' && !($k=='ACD Systems Digital Imaging')) { echo "<div class="commentImage">".$v."</div>" ; } }; } echo" <table style="width:100%;"> <tr> <td align="center"> <table style="margin:auto;margin-top:5px;margin-bottom:5px;">"; /* $exif = read_exif_data($lien_image); while(list($k,$v)=each($exif)) { echo "$v : $k";}; */ $exif = read_exif_data($lien_image); while(list($k,$v)=each($exif)) { if ($k=='DateTimeOriginal' && !($k=='ACD Systems Digital Imaging')) { echo " <tr> <td style="font-weight:bold;">photographié le :</td> <td style="text-align:right;"> ".substr($v,8,2)."/".substr($v,5,2)."/".substr($v,0,4)." à ".substr($v,11)."</td> </tr> "; } }; if ( $page['author'] != "" ) { echo" <tr> <td style="font-weight:bold;">".$lang['author']." : </td> <td style="text-align:right;">".$page['author']."</td> </tr>"; }
J'ai un peu regardé depuis ce qui concerne les tags EXIF. J'ai trouvé un logiciel génial fonctionnant en ligne de commande qui permet par exemple de modifier la date et l'heure à laquelle l'image a été prise (pratique quand on part à l'étranger et qu'on oublie de régler l'appareil). Ca s'appelle jheader http://www.sentex.net/~mwandel/jhead
Parmi les tags EXIF utils, je pense que les plus importants sont :
DateTimeOrginal qui donne la date et l'heure où la photo a été prise
ImageDescription
UserComment
Je pense que ImageDescription doit servir au titre de l'image et non pas à sa description (c'est ce qui semble être utilisé dans les logiciels que j'ai essayé). Pour la description je pense qu'il faut utiliser UserComment.
Je vais quand même regarder un peu si je peux trouver d'autres informations et des logiciels efficaces pour taguer facilement mes photos. Pour l'instant le meilleur que j'ai trouvé est ExifEditor qui est intégré dans un logiciel qui s'appelle Robotphoto si me souviens bien. Il permet de faire défiler les photos ce qui est très utile.
Bon, ça y'est j'ai tout mis en place chez moi et maintenant ça fonctionne parfaitement. En fait, il existe plusieurs catégorie dans les tags, pour éviter les confusions il faut utiliser la commande
$exif = exif_read_data ('test1.jpg',0,true);
qui va créer des tableaux imbriqués permettant d'avoir accès aux différents tags. Pour ma part j'ai utilisé ceux-ci dans mes pages :
$exif[IFD0][ImageDescription] : titre de l'image
$exif[COMPUTED][UserComment : commentaire/description de l'image
$exif[EXIF][DateTimeOriginal] : date et heure de prise de la photo
$exif[EXIF][ExifImageWidth] : largeur originale de la photo
$exif[EXIF][ExifImageLength] : hauteur originale de la photo
Ensuite j'ai juste modifié le code des pages diapo.php et photo.php en mettant la priorité du titre et des commentaires à ceux de phpwebgallery.
Mais j'ai pensé que ce qui serait pas mal, et qui évite de faire beaucoup de modifications du code, ce serait que lorsque l'on ajoute de nouvelles images phpwebgallery complète directement sa base de données avec le contenu des tags exif, quitte à ce qu'on les modifie ensuite. Je pense que ce serait vraiment utile pour les dates de création (personnellement j'ai rajouté une ligne "photographié le ..." dans photo.php).
Bon, si ça intéresse quelqu'un je peux lui envoyer mes fichiers photo.php et diapo.php. J'ai mis plein de commentaire pour s'y retrouver un peu (et lorsque je veux changer quelquechose bien sur ;-).
Je ne pense pas que cela dérange l'auteur de modifier un peu son script tant qu'on laisse le lien vers phpwebgallery.
J'ai quand même hâte de voir la prochaine version du script.
Voilà ce qu'on pouvait dire sur les tags EXIF qui je trouve sont vraiment utiles ne serait-ce que pour renseigner sur les dates des photos. On peut même je crois exploiter les vignettes (thumbnail) qui se trouvent dans les fichiers et qui sont créés par les appareils photos mais je n'ai pas encore essayé.
Sur ce, bonne journée et bonnes photos 8)
z0rglub, je voulais juste savoir si tu avais essayé et ce que tu en pensais. Personnellement je trouve ça super.
Pour ceux qui voudraient essayer, je vous mets mes fichiers à disposition. Il suffit de les renommer avec l'extension .php
http://sebastien.lienard.free.fr/diapo.txt
http://sebastien.lienard.free.fr/photo.txt
Il faut pour que ça fonctionne que la librairie php_exif.dll soit chargée (rajoutée la ligne extension=php_exif.dll dans php.ini).
désolé pas eu le temps de tester cause pa d'ADSL en ce moment à la maison (et je peux pas tester ça pdt mes heures de boulot... ;)
ça va pas tarder, d'autant que ça m'intéresse !
Hors ligne
Un petit complément sur l'exif
J'ai trouvé un excellent logiciel pour lire et modifier les tags exif : il s'appelle exifer et vous pouvez le trouver à http://www.friedemann-schmidt.com/software/exifer/
On peut modifier et sauvegarder les tags, créer des miniatures, etc.
J'ai aussi découvert qu'on pourrait utiliser directement les miniatures inclues dans les photos avec la fonction exif_thumbnail mais je n'ai pas encore essayé.