Pour naviguer dans une collection d'images

Dernière version: v0.9. Détails des nouveautés...

Le besoin

"J'ai une collection d'images, en fait un répertoire plein d'images.

Je voudrais les mettre sur le web sous une forme agréable à visiter.

Ou bien, je souhaite les donner à quelqu'un sur un support numérique (CD-Rom par exemple) pour qu'il puisse facilement les feuilleter, mais il n'a peut-être pas le même système informatique que moi et je voudrais que ça marche quand même.

Je souhaite peut-être mettre quelques annotations ou commentaires, pas forcément sur toutes les images."

Peut-être avez-vous été dans cette situation. Je vous propose une solution.

L'existant

Il existe de nombreux programmes de ce genre. J'ai regardé des descriptions, vu ce qu'ils produisaient, essayé d'installer certains programmes très complets et alléchants. Finalement, je n'ai rien trouvé qui satisfasse tous mes critères:

J'aurais pu reprendre un programme existant. J'en ai fait un nouveau.
Vous pouvez consulter un exemple de présentation d'une collection d'images,
ou bien un autre exemple, incluant un découpage en sections.
La section "photos" de l'amphi-gouri est entièrement faite avec ce script.

Comment on fait alors ?

Il suffit de rassembler quelques fichiers contenant des images (par exemple au format jpeg), d'appeler un script, et cela génère tout le reste.

La maintenance est simple: on peut ajouter des photos ou modifier le titre, le commentairegeneral ou les commentaires attachés à chaque photo (dans le fichier liste), puis il suffit de relancer le script, qui fait ce qu'il faut.

(Nouveau depuis la version 0.6) On peut choisir les tailles des images qui sont générées.

En particulier, seules les images dont les paramètres ont changé voient leur imagettes recalculées.

Si vous êtes impatient, pas besoin de lire le reste: téléchargez et lancez le programme par perl navimg.pl, et laissez-vous guider.

Je veux savoir en détail

Après visite, vous pouvez naturellement ajouter ou supprimer des images, et affiner (rotation, effets).

Mais ça a besoin de plein de trucs ?

Non. En un mot: ça marche sous n'importe quel Linux sans préparation.

Cela marche aussi sur tous les autres systèmes Unix ou compatible avec la norme Posix, BeOS et même Windows. Cela dit, je n'ai pas testé. Pour la plupart de ces systèmes il faudrait d'abord installer les composants requis, alors qu'avec Linux ils sont inclus.

Plus précisément, il suffit d'avoir un environnement avec quelques éléments extrêmement courants:

Tout ceci est installé par défaut par à peu près n'importe quelle distribution de Linux. ImageMagick est normalement présent, sauf si on a expressément refusé des options comme "graphisme" "multimédia" ou "traitement d'image" à l'installation.

Bref: ça marche chez vous.

D'autres exemples de ce qu'on peut faire avec ?

C'est nul ce truc. Un site web sérieux est en php.

Un site "sérieux en php" ne peut pas être gravé sur un CD-Rom pour être consulté sur n'importe quel système. Des pages html statique ont cet avantage. Et celles-ci sont tout de même générées par programme, ce qui évite de les faire à la main.

Fonctionnalités plus fines

Tout est dans le fichier liste qui a une structure ligne à ligne.

Ouvrez-le avec votre éditeur de texte préféré.

Quand on incorpore une nouvelle image, la ligne générée ressemble à ceci (où <tab> représente un caractère tabulation):
IMG_0001.JPG <tab> <tab> <tab> ...

Un exemple typique de modification:
IMG_0001.JPG <tab> <tab> -rotate 90 <tab> Photo of a bull in the water canoeing

Après avoir modifié le fichier, il suffit de relancer le script pour régénérer les pages, et le cas échéant les imagettes.

Comment ajoute-t-on de nouvelles images ?

Toutes nouvelles images ajoutées au répertoire principal sont incorporées à la liste automatiquement (et déplacées vers le répertoire origine) quand le script est relancé.

Comment décide-t-on de la résolution des images générées ?

Par défaut, les images sont générées en 640x480, 800x600, 1024x768 et 1600x1200 avec des qualités de fichier JPEG appropriées. Pour l'instant il faut éditer le début du fichier (lignes 35 à 40) pour modifier cette liste. Prenez exemple sur le format utilisé dans le fichier.

Comment supprime-t-on des images ?

On supprime les lignes correspondantes dans le fichier liste, et on relance le script. On peut aussi supprimer les fichiers images générés.

Comment place-t-on des commentaires ?

On remplace ... par un commentaire dans la ligne relative à l'image, voir ci-dessus.

Peut-on tourner les images ?

Pour tourner l'image dans le sens horaire, il faut placer une commande -rotate 90 après la seconde tabulation, ainsi:
IMG_0001.JPG <tab> <tab> -rotate 90 <tab> ...

Pour le sens anti-horaire, -rotate 270 convient.

Comment découpe-t-on des sections ?

On insère dans la liste une ligne structurée comme dans cet exemple (aucune tabulation):
SECTION L'aller en avion.

Exemple de galerie avec découpage en sections

Peut-on appliquer d'autres effets ?

On peut appliquer aux images toutes les transformations proposée par ImageMagick (recadrage, amélioration des contrastes, annotations textuelles, filtres divers, etc...).

Pour cela, il suffit de placer une commande, comme par exemple un recadrage -crop 100x100+100+100 entre la première et la seconde tabulation, ainsi:
IMG_0001.JPG <tab> -crop 100x100+100+100 <tab> <tab> Image recadrée

Quelques exemples de commandes utilisées: -normalize pour les photos sous-exposées, -despecke pour réduire le grain, -gamma 2 pour corriger une éventuelle non-linéarité des couleurs.

On peut demander plusieurs effets, il faut les séparer par des espaces.

Il existe des dizaines d'autres possibilités, voir aussi la page de manuel de convert, par exemple en tapant man convert.

J'ai vu une galerie avec un effet particulier, comment je peux faire pareil ?

Il suffit de télécharger le fichier liste de cette galerie, par exemple si l'adresse est http://amphi-gouri.org/photos/200110stockholm/ la liste est accessible par http://amphi-gouri.org/photos/200110stockholm/liste.

Je voudrais placer plusieurs fois la même photo et ça ne marche pas

Le programme ne prévoit pas qu'une photo apparaisse plusieurs fois dans la liste (cela créerait une boucle dans la succession des liens html).

Vous pouvez toutefois le faire, notamment si vous voulez présenter plusieurs versions (recadrages, etc...) de la même image, en prenant exemple sur le modèle ci-dessous:

IMG_3542.JPG <tab> <tab> <tab> Photo d'ensemble
IMG_3542.JPG-01
<tab> -crop 320x240+860+400 -geometry '200%' <tab> <tab> Photo recadrée et agrandie

Limitations

Le programme ne prévoit pas de vous laisser toute liberté sur la mise en page. Mais, bon, on avait dit un truc simple.

Cela dit, c'est un logiciel libre, vous pouvez regarder dans le programme (même si vous ne savez pas le perl), et modifier les instructions print qui génèrent le code HTML.

Bugs

Si on reste dans ce qui est expliqué ici, tout fonctionne bien. Il n'y a donc pas de bug au sens strict.

Cependant, il est facile d'abîmer le fichier liste, par exemple si vous perdez les tabulations. Je tâcherai d'arranger cela.

Si vous êtes complètement perdu, vous pouvez déplacer ou renommer le fichier liste et lancer le script, un nouveau sera généré.

Bugs dans les dépendances

navimg fait appel à l'option -interlace Plane d'ImageMagick qui permet de générer des JPEG "progressifs", c'est à dire qu'à mesure du téléchargement, on voit d'abord une image grossière puis qui s'affine, au lieu de la voir apparaître de haut en bas. Il semble que certaines version d'ImageMagick gèrent mal cette option (la 5.3.8 et précédentes sont atteintes, la 5.4.8 n'a pas le problème tapez convert | grep Version -A 1 pour connaître le numéro de votre version). Si vous constatez que vous obtenez des grosses images partout au lieu d'imagettes, c'est peut-être ça. Pour contourner le problème, il suffit de supprimer la mention -interlace Plane dans le script. La bonne solution est d'avoir un système à jour.

Historique

Merci à Stéphane Brefort de m'avoir contacté pour me signaler un problème avec certaines version d'ImageMagick.

v0.3 2002/08 première version publique

v0.4 2002/09 accepte maintenant une variété de formats de fichier. Prochaine étape: faire détecter automatiquement par ImageMagick quels fichiers sont des images ?

v0.5 2002/10/25 Un brin de javascript pour charger en avance la photo suivante. Bien sûr personne n'est lésé si le navigateur client désactive javascript. Provisions pour générer automatiquement une arborescence complète (non documenté).

v0.6 2003/02/13 Au début du fichier, présence de variables configurables. On peut définir les tailles des images générées, la taille des imagette, la couleur de fond et du texte.

v0.7 2003/05/15 Merci à Pascal Gouedo de m'avoir signalé deux petits problèmes et des solutions: si la première image n'appartient à aucune section, elle se retrouve rangée dans la dernière section dans certaines résolutions. Et aussi: le lien vers l'image précédente n'avait jamais son commentaire associé. J'ai incorporé ses solutions dans la version 0.7. Merci!

v0.8 2003/10/15 Le pied de page est personalisable, et vous invite à placer un lien vers l'auteur des photos. Petites modifcations mineures.

v0.9 2004/10/24 Par défaut, les résolutions 1600x1200 et 800x600 ne sont plus activées (mais sont faciles à réactiver). Une instruction CSS est ajoutée pour que les images ne soient pas entourées d'un filet.


Valid XHTML 1.0! Retour à la page de niveau supérieur