Afficher un panorama en profitant pleinement de sa résolution
Nous avons déjà vu comment diffuser un panorama sur internet mais en limitant sa résolution. D’un autre côté, j’ai montré comment diffuser des images de grande résolution. Il manquait la synthèse des deux, à savoir, pouvoir visualiser un panorama 360° ou sphérique tout en conservant la haute résolution. J’ai réalisé pour ça des petits programmes qui montrent que c’est techniquement faisable même s’ils ne résolvent pas complètement le problème. En effet, on peut consulter un panorama à distance sur internet mais seulement depuis une application spécifique sous Windows, pas intégré dans une page web.
La première application pano_cutter permet de préparer l’image. L’image doit être au format tif, en 16 millions de couleurs et avec ou sans transparence (canal alpha). Il faut démarrer pano_cutter (il nécessite la librairie ijl15.dll fournie avec le reste) :
Thumbnail size indique la taille des vignettes à utiliser pour découper la grande image. Ceci n’a pas d’influence sur la qualité visuelle du résultat mais peut modifier la fluidité de l’affichage. À priori, vous pouvez laisser 256 sauf raison particulière.
Jpeg Quality, entre 0 et 100 indique le niveau de compression jpeg utilisé pour les vignettes et donc l’affichage final. 0 correspond à une compression très forte avec une mauvaise qualité d’image alors que 100 correspond à une compression très faible avec une bonne qualité.
On choisit ensuite dans la liste déroulante Projection la nature du panorama reconstitué, plan, cylindrique ou sphérique. Voir les principes des panoramas. Si le panorama est cylindrique, il faut aussi indiquer en dessous, dans Horizon position à quel niveau se situe l’horizon, en pixel depuis le haut de l’image.
Enfin, on appuie sur le bouton Start... qui ouvre un dialogue demandant où se trouve l’image tif à traiter. Quand on a validé, le travail de préparation démarre et on peut suivre l’évolution dans la barre de progression qui vient d’apparaître. La barre de progression et le bouton Stop disparaissent quand c’est terminé. Vous pouvez quitter le programme pano_cutter. Le résultat est dans le dossier de l’image qu’on vient de traiter. Il y a un fichier pano.txt et une série de sous-dossiers avec des noms en layerXX :
Vous pouvez alors consulter votre panorama, soit localement, soit à distance sur internet. Dans les deux cas, on utilise le même logiciel, Pano_dispaly.
En local, vous avez juste à démarrer pano_display. Vous allez ensuite dans le menu file puis local picture... et vous indiquez à quel endroit se trouve sur votre ordinateur le fichier pano.txt qui a été généré à l’étape précédente. Le panorama doit s’afficher :
Vous pouvez vous déplacer à l’intérieur en enfonçant le bouton gauche de la souris sur l’image puis en la déplaçant. Le menu Display permet de jouer sur le niveau de zoom, 100% correspondant à un pixel de l’écran pour un pixel du panorama pleine résolution. On peut aussi utiliser les touches + et - ou la roulette de la souris pour faire varier le zoom. Si vous n’avez pas fait d’erreur de réglage, les lignes droites doivent paraître rectilignes, comme la rambarde sur l’exemple ci-dessus.
Pour consulter votre panorama à distance, vous devez le mettre à disposition sur un site web. Pour cela, il faut copier le fichier pano.txt et tous les sous-dossiers layerXX au même endroit de votre serveur web. Ensuite, vous pouvez démarrer pano_display. Il faut alors aller dans le menu File puis Remote picture et indiquer l’adresse web du fichier pano.txt que vous avez mis à disposition sur votre site web. L’adresse par défaut correspond à un exemple présent sur mon serveur web. L’option proxy permet d’indiquer un éventuel serveur de proxy. La navigation est ensuite la même qu’en local.
Tout est disponible dans un seul fichier zip, avec le code source sous licence GPL.
Il demeure quelques bugs sur l’affichage avec des défauts de rafraîchissement par moment. Il faut bouger un petit peu la souris pour les faire disparaître.
Ma démonstration est limitée à Windows et sous la forme d’une application autonome. Si quelqu’un veut en faire une applet Java à intégrer dans une page web, qu’il n’hésite pas. Le code source est disponible et j’essayerai de répondre à toutes ses questions.
Enfin, je tiens à remercier Florent Thouret pour m’avoir fourni le panorama sphérique du Parc des oiseaux de Villars-les-Dombes qui sert d’exemple d’affichage. N’hésitez pas à visiter son site web.
[( ] Le paquet qui fait tout |