Bonsoir,Robert29 a écrit :Bonjour,
Si tu veux poursuivre en créant un diaporama, j'ai également le programme qui va bien en stock.
Je serais assez interessé par ce petit programme ( code php je suppose )
D'avance Merci

Bonsoir,Robert29 a écrit :Bonjour,
Si tu veux poursuivre en créant un diaporama, j'ai également le programme qui va bien en stock.
Code : Tout sélectionner
<?PHP // Toutes les fonctions PHP qui doivent s'executer sur le serveur //////////////////////////////////
function cmp($a, $b){
// Fonction de comparaison pour le tri
Return strcmp($a["date"], $b["date"]);
}
function LireNomsImages($Repertoire, $Extension)
{
// Fonction qui stocke et trie la liste des fichiers images du Repertoire fourni en argument
// ayant la bonne extension.
// Le resultat est dans le tableau "image" en global. Chaque element est constitue de la date et
// du nom du fichier.
global $image; // Contiendra la liste des images utiles au diaporama
$image = Array();
$image_org = Array(); // Toutes les images avant selection
$Repertoire_ID = opendir($Repertoire) or die('Erreur');
while($Fichier_Image = readdir($Repertoire_ID)) { // Balayage des fichiers du repertoire
if( $Fichier_Image != '.' && $Fichier_Image != '..') { //On ignore . et ..
$Fichier = $Repertoire.'/'.$Fichier_Image; // Chemin relatif a la racine
$Infos = pathinfo($Fichier); // Pour recuperer infos concernant le fichier
if ($Infos['extension'] == $Extension){ // On ne garde que les fichiers ayant la "bonne" extension
$image_org[] = array( "date"=> date("Y/m/d H:i", filemtime($Fichier)), "nom"=>$Fichier);
}
}
}
closedir($Repertoire_ID);
usort($image_org, 'cmp'); // Tri suivant la date
//print_r($image_org);
// On ne conserve que les images souhaitees, fonction de l'intervalle images camera
$granularite = 1; // Par defaut, toutes les images
if (isset($_GET["frame"])){ // Sinon, valeur choisie dans le menu
$granularite = $_GET["frame"];
}
// Calcul premier index du tableau origine a garder
$index = (count($image_org) -1) % $granularite;
// Copie dans $images des (nom, date) des images utiles
while ($index < count($image_org)){
$image[] = $image_org[$index];
$index += $granularite;
}
}
function ListeImages(){
// Fournit la liste des noms de fichiers
global $image;
foreach ($image as $key => $value) {
echo "MesImages[".$key."] = ".'"'.$value["nom"].'"'.";\n";
}
}
function ListeOptions(){
// Remplit les options de la liste deroulante "slide" dans "formname"
global $image;
foreach ($image as $key => $value) {
echo "<option value="."'".$value["nom"]."'>".$value["date"]."</option>;\n";
}
}
function PremiereImage(){
global $image;
echo "<img src='".$image[0]["nom"]."' alt='".$image[0]["date"]."' title='".$image[0]["date"]."' name='show' border='0' />\n";
}
function TempsParImage(){
// Recuperation de la valeur selectionnee si chargement de page (suite a submit) ou valeur par defaut
if (isset($_GET["temps_par_image"])){
echo $_GET["temps_par_image"];
}
else echo "1000";
}
function IntervalleSelectionne(){
// Recuperation de la valeur selectionnee si chargement de page (suite a submit) ou valeur par defaut
if (isset($_GET["frame"])){
echo '"'.$_GET["frame"].'"';
}
else echo "1";
}
// Fin definition des fonctions PHP /////////////////////////////////////////////////////////////
?>
Code : Tout sélectionner
<table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr>
<td>
<p style="line-height: 2.0">Les photos sont prises toutes les 15 minutes, de 1/2 heure avant le lever du soleil à 1/2 heure après le coucher du soleil. Lorsqu'il fait encore nuit, seul le balisage nocturne des éoliennes peut apparaître sur votre écran sous forme de points lumineux. Ces éoliennes, au nombre de 13, sont implantées sur la montagne de St Gildas qui borde la plaine du Porzay au nord. Elles sont situées à plus de 6 km de la caméra.</p>
</td>
</tr>
<tr>
<td>
<p style="line-height: 0.2">Pour avoir un défilement fluide:</p>
<ul style="textalign: right">
<li>Choisissez l'intervalle caméra entre chaque image. (avec 15mn, le diaporama comportera (4 images/h)*24= 96 images.</li>
<li>Cliquez sur "Charger". Le chargement peut être assez long, mais ceci permet d'avoir une vitesse d'affichage élevée.</li>
<li>Attendre le chargement complet des images, puis cliquez sur "Démarrer".</li>
</ul>
</td>
</tr>
<tr style="height:550px">
<td>
<script language="JavaScript" type="text/javascript">
//<![CDATA[
var lengthOfPreloadBar = 350 // Longueur de la barre de progression en pixels
var heightOfPreloadBar = 15 // Hauteur de la barre de progression en pixels
MesImages = new Array; // Tableau pour accueillir les noms d'images qu'il faudra charger
<?PHP LireNomsImages('Images', 'jpg'); ListeImages(); ?>
if (document.images) {
var dots = new Array()
dots[0] = new Image(1,1)
dots[0].src = "black.gif" // couleur de la barre en default
dots[1] = new Image(1,1)
dots[1].src = "green.gif" // couleur de la barre en progression
var preImages = new Array(),coverage = Math.floor(lengthOfPreloadBar/MesImages.length),currCount = 0
var loaded = new Array(),i,covered,timerID
var leftOverWidth = lengthOfPreloadBar%coverage
document.horloge1.elements[0].value ="0 %";
}
function loadImages() {
for (i = 0; i < MesImages.length; i++) {
preImages[i] = new Image()
preImages[i].src = MesImages[i]
}
for (i = 0; i < preImages.length; i++) {
loaded[i] = false
}
checkLoad()
}
function checkLoad() {
if (currCount == preImages.length) {
Return
}
for (i = 0; i <= preImages.length; i++) {
if (loaded[i] == false && preImages[i].complete) {
loaded[i] = true
eval("document.img" + currCount + ".src=dots[1].src")
currCount++
var l = Math.round((currCount / preImages.length)*1000) / 10;
document.horloge1.elements[0].value =currCount + " / " + preImages.length + " images " +l + " %";
}
}
timerID = setTimeout("checkLoad()",10)
}
//]]>
</script> <!-- Fonctions javascript utiles pour le DIAPORAMA -->
<script language="JavaScript" type="text/javascript">
//<![CDATA[
var current = 0;
var tps_par_image = <?php TempsParImage() ?> ;
function next(){ // forward one image
if(document.formname.slide[current+1]){
document.images.show.src = document.formname.slide[current+1].value;
document.formname.slide.selectedIndex = ++current;}
else{first();}}
function previous(){ // back on image
if((current-1) >= 0){
document.images.show.src = document.formname.slide[current-1].value;
document.formname.slide.selectedIndex= --current;}
else{last();}}
function first(){ // jump to first image
current=0;
document.images.show.src = document.formname.slide[0].value;
document.formname.slide.selectedIndex=0;}
function runClock() {
today = new Date();
hours = today.getHours();
minutes = today.getMinutes();
seconds = today.getSeconds();
timeValue = hours;
// Les deux prochaines conditions ne servent que pour l'affichage.
// Si le nombre de minute est inférieur à 10, alors on rajoute un 0 devant...
timeValue += ((minutes < 10) ? ":0" : ":") + minutes;
timeValue += ((seconds < 10) ? ":0" : ":") + seconds;
document.getElementById("time").value = timeValue;
timerID = setTimeout("runClock()",1000);
timerRunning = true;
}
function last(){ // this is jump to last image
current=(document.formname.slide.length-1);
document.images.show.src = document.formname.slide[current].value;
document.formname.slide.selectedIndex=current;}
function ap(text){ // this controls the auto-play and/or auto-stop
document.formname.slidebutton.value=(text == "Arrêter") ? "Démarrer" : "Arrêter";
rotate();}
function change(){ // this is for the pulldown menu
current=document.formname.slide.selectedIndex;
document.images.show.src = document.formname.slide[current].value;}
function rotate() {
if (document.formname.slidebutton.value == "Arrêter") {
document.formname.slidebutton.value=(current == document.formname.slide.length-1) ? "Démarrer" : "Arrêter";
current = (current == document.formname.slide.length-1) ? 0 : current+1;
document.images.show.src = document.formname.slide[current].value;
document.formname.slide.selectedIndex = current;
// window.setTimeout('rotate()', 2000);}
window.setTimeout('rotate()', tps_par_image );}
}
function fixe_tps(){
// Met a jour la variable "tps_par_image" quand une selection a lieu
sel_index = document.formname.temps_par_image.options.selectedIndex;
tps_par_image = document.formname.temps_par_image.options[sel_index].value;
}
//]]>
</script> <!-- Fin fonctions DIAPORAMA -->
<form name='menu_intervalle' method="get" action="#" id="menu_intervalle">
<em>Intervalle camera:</em> <select name='frame' size='1' style='background-color:#FFFFCC'>
<option value='1'>
15 min
</option>
<option value='2'>
30 min
</option>
<option value='4'>
1 h
</option>
</select> <input type='submit' name='Afficher' value='Charger' />
</form><br />
<em>Préchargement des images...<br /></em>
<form style="font-weight: bold" name="horloge1" id="horloge1">
<input size="23" name="text" type="text" />
</form><br />
<!-- Gestion chargement fichiers -->
<script language="JavaScript" type="text/javascript">
//<![CDATA[
if (document.images) {
var preloadBar = ''
for (i = 0; i < MesImages.length-1; i++) {
preloadBar += '<img src="' + dots[0].src + '" width="' + coverage + '" height="' + heightOfPreloadBar + '" name="img' + i + '" align="absmiddle">'
}
preloadBar += '<img src="' + dots[0].src + '" width="' + (leftOverWidth+coverage) + '" height="' + heightOfPreloadBar + '" name="img' + (MesImages.length-1) + '" align="absmiddle">'
document.write(preloadBar)
setTimeout("loadImages()",2000);
}
//]]>
</script> <!-- -->
<br />
<br />
<br />
<form name='formname' action='#' id="formname">
<table align='center' border='0'>
<tr>
<td width='159' align='right' valign='middle'><select name='slide' size='30' style='background-color:#FFFFCC' onchange='change();'>
<?php ListeOptions(); ?>
</select></td>
<td align='center' valign='middle'><?php PremiereImage(); ?></td>
</tr>
<tr>
<td colspan='3' align='center' style="height: 79px"><em>Temps d'affichage par image:</em> <select name='temps_par_image' size='1' style='background-color:#FFFFCC' onchange='fixe_tps()'>
<option value='100'>
0.1s
</option>
<option value='200'>
0.2s
</option>
<option value='300'>
0.3s
</option>
<option value='500'>
0.5s
</option>
<option value='700'>
0.7s
</option>
<option selected='selected' value='1000'>
1s
</option>
<option value='1500'>
1.5s
</option>
<option value='2000'>
2s
</option>
<option value='3000'>
3s
</option>
</select> <input name="button" type="button" title="Aller au début" onclick="first();" value="|<" /> <input type="button" onclick="previous();" value="<" title="Image précédente" /> <input type="button" name="slidebutton" onclick="ap(this.value);" value="Démarrer" title="Lancer diaporama" /> <input type="button" onclick="next();" value=">" title="Image suivante" /> <input type="button" onclick="last();" value=">|" title="Aller la fin" /></td>
</tr>
</table>
</form><!-- gestion des saisies: valeurs selectionnees conservees au rechargement de page (submit sur "Charger") -->
<script language="JavaScript" type="text/javascript">
//<![CDATA[
// On conserve la selection sur l'intervalle camera (ou valeur par defaut)
intervalle = <?php IntervalleSelectionne() ?>;
for (var x = 0; x < document.menu_intervalle.frame.length; x++) {
if (document.menu_intervalle.frame.options[x].value == intervalle) {
document.menu_intervalle.frame.options[x].selected = true;
}
}
// On conserve la selection sur le temps par image choisi
for (var x = 0; x < document.formname.temps_par_image.length; x++) {
if (document.formname.temps_par_image.options[x].value == tps_par_image) {
document.formname.temps_par_image.options[x].selected = true;
}
}
first();
//]]>
</script>
</td>
</tr>
</table>