Image qui se change automatiquement
Fermé
btguillaume
-
29 oct. 2012 à 22:33
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 - 5 nov. 2012 à 03:07
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 - 5 nov. 2012 à 03:07
A voir également:
- Image qui se change automatiquement
- Change dns - Guide
- Image iso - Guide
- Automatiquement - Guide
- Acronis true image - Télécharger - Sauvegarde
- Image iso windows 10 - Guide
15 réponses
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
Modifié par Atropa le 30/10/2012 à 09:21
Modifié par Atropa le 30/10/2012 à 09:21
bonjour,
c'est étrange d'avoir un nombre aléatoire a la fin de la source d'une image
c'est pour ça que tes liens se brise
si tu veux une image qui change aléatoirement le plus simple c'est de lier ça a un fichier php
tu modifie la source de ton image par image.php
document.images['myCam'].src = 'image.php?r=' + Math.random();
et enfin le fichier image.php
c'est étrange d'avoir un nombre aléatoire a la fin de la source d'une image
c'est pour ça que tes liens se brise
si tu veux une image qui change aléatoirement le plus simple c'est de lier ça a un fichier php
tu modifie la source de ton image par image.php
document.images['myCam'].src = 'image.php?r=' + Math.random();
et enfin le fichier image.php
<?php $dossier = 'dossier/content/images'; /* dossier contenant les images */ $ext = array('jpg','jpeg','png','gif','svg'); /* extensions autorisées */ if(substr($dossier,-1) != '/') $dossier .= '/'; $t = scandir(realpath($dossier)); /* je ne sais plus si realpath fonctionne sur les dossiers, si ça fonctionne ça t'évitera de devoir donner l'adresse canonique */ $nbItem = count($t); $ind = mt_rand() % $nbItem; $valEnd = ($ind > 0)? $nbItem - 1 : $ind - 1; for($i = $ind; $i != $valEnd;$i++) { /* si aucun fichier n'est trouvé après les avoir tous regarde, arret du script */ if($i == $nbItem) $i = 0; if(!isset($t[$i])) exit(); if($t[$i] == '.' || $t[$i] == '..') continue; $fext = strtolower(strrpos($t[$i],'.'); if(!in_array($fext),$ext) continue; $type = 'image/'; /* Pour le type attention que ça fonctionne si tu change les extensions autorisé */ if($fext == 'jpg') $type .= 'jpeg'; else if($fext == 'svg') $type .= 'svg+xml'; else $type .= $fext; header('Content-type: '.$type); readfile($dossier.$t[$i]); exit(); } ?>
En fait je vais t'expliquer mon projet.
J'ai un petit module incluant un webserver qui contrôle des relais. Dans ce module (carte programmable), je veux une icone ou un texte qui indique si la carte est branchée à internet ou seulement au réseau locale pour d'éventuelles diagnostiques et aussi pour informer l'utilisateur que certaines fonctions sont indisponibles puisque que la connectivité internet n'est pas disponible. Je voudrias quelque chose de tout simple et vu que je ne connais pas beaucoup le html et les scripts, j'avais pensé à cette astuce d'image toute simple. Une image qui viendrait directement des fichiers de la carte, ("/macarte/images/x_rouge.jpg") pour indiquer la NON connectivité à internet ou au réseau locale seulement et un image venant de mon site web, ("http://monsiteweb.com/images/crochet_vert.jpg") pour indiquer la connectivité à internet.
L'image serait remplacée à exactement la même endroit sur la page. Peut être aussi utiliser la fonction map pour les coordonnées de l'image?
Aussi il faut que l'image cherche à être rafraîchit tous les ''X'' secondes pour que le système soit juste et précit. J'ai pensé au rafraîchissement de l'image uniquement pour que le tout reste transparent aux yeux de l'utilisateur.
Qu'en pensez-vous?
S'il y d'autre façon de faire je suis ouvert aux suggestions!
Merci de votre aide!
Guillaume
J'ai un petit module incluant un webserver qui contrôle des relais. Dans ce module (carte programmable), je veux une icone ou un texte qui indique si la carte est branchée à internet ou seulement au réseau locale pour d'éventuelles diagnostiques et aussi pour informer l'utilisateur que certaines fonctions sont indisponibles puisque que la connectivité internet n'est pas disponible. Je voudrias quelque chose de tout simple et vu que je ne connais pas beaucoup le html et les scripts, j'avais pensé à cette astuce d'image toute simple. Une image qui viendrait directement des fichiers de la carte, ("/macarte/images/x_rouge.jpg") pour indiquer la NON connectivité à internet ou au réseau locale seulement et un image venant de mon site web, ("http://monsiteweb.com/images/crochet_vert.jpg") pour indiquer la connectivité à internet.
L'image serait remplacée à exactement la même endroit sur la page. Peut être aussi utiliser la fonction map pour les coordonnées de l'image?
Aussi il faut que l'image cherche à être rafraîchit tous les ''X'' secondes pour que le système soit juste et précit. J'ai pensé au rafraîchissement de l'image uniquement pour que le tout reste transparent aux yeux de l'utilisateur.
Qu'en pensez-vous?
S'il y d'autre façon de faire je suis ouvert aux suggestions!
Merci de votre aide!
Guillaume
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
30 oct. 2012 à 23:34
30 oct. 2012 à 23:34
le plus simple c'est de précharger les 2 images et de faire une requête xhr tout les n secondes
si une erreur survient la requête n'aboutit pas changer d'image
je pensai que tu voulais des images aléatoires dans une liste
si une erreur survient la requête n'aboutit pas changer d'image
je pensai que tu voulais des images aléatoires dans une liste
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Avec AJAX peut-être?
Je fouille sur le web pour voir...
Je fouille sur le web pour voir...
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
31 oct. 2012 à 03:01
31 oct. 2012 à 03:01
oui c'est un principe ajax
XmlHttpRequest
XmlHttpRequest
okay ça l'aire complex un peu, le but est de faire une requete sur une image à tous les ''X'' secondes?
Ou le principe est différent. En le sachant je pourrai fouiller pour un début de code sur le web, merci
Ou le principe est différent. En le sachant je pourrai fouiller pour un début de code sur le web, merci
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
31 oct. 2012 à 03:12
31 oct. 2012 à 03:12
le but est de faire une requête valide sur un petit fichier par exemple
test.php avec comme contenu :
ce qu'il faut récupérer ce n'est pas le contenu mais le code de réponse http donc inutile de faire pointé sur un fichier qui a plus de contenu que ça, ça ne ferait qu'augmenter l'utilisation de bande passante
je pourrais te faire un exemple demain là je suis épuisé
test.php avec comme contenu :
1
ce qu'il faut récupérer ce n'est pas le contenu mais le code de réponse http donc inutile de faire pointé sur un fichier qui a plus de contenu que ça, ça ne ferait qu'augmenter l'utilisation de bande passante
je pourrais te faire un exemple demain là je suis épuisé
Ouais okay je vois, pas de trouble. Mon webserver ne prend pas en charge le php . Du moins je crois, je fait des tests et le php n'a pas l'aire d'être prit en charge.
Guillaume
Guillaume
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
31 oct. 2012 à 11:36
31 oct. 2012 à 11:36
ca marche avec n'importe quel fichier même un fichier sans extension
tu peux écrire 1 dans un fichier txt
tu peux écrire 1 dans un fichier txt
Mais, je fais comment le code? J'ai essayé quelque code que j'ai modifié sur le net mais je crois que j'ai pas le bon matériel.
Quel attribut de fonction faut-il prendre? loadimage? faire un load, error ???
Je travail avec ce début est-ce bon?
Merci:)
Quel attribut de fonction faut-il prendre? loadimage? faire un load, error ???
Je travail avec ce début est-ce bon?
function Quelle fonction mettre ici?() { var xhr; try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e2) { try { xhr = new XMLHttpRequest(); } catch (e3) { xhr = false; } } } xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if(xhr.status == 200)
Merci:)
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
Modifié par Atropa le 2/11/2012 à 04:13
Modifié par Atropa le 2/11/2012 à 04:13
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>test</title> <script type="text/javascript"> function XHR() { var requete = null; try { requete = new XMLHttpRequest(); } catch (microsoft) { try { requete = new ActiveXObject('Msxml2.XMLHTTP'); } catch(autremicrosoft) { try { requete = new ActiveXObject('Microsoft.XMLHTTP'); } catch(echec) { requete = null; } } } if(requete == null) alert('Votre navigateur ne semble pas supporter les object XMLHttpRequest.'); return requete; } function tester(id,srcT,srcF,frequency) { var imgT = document.createElement('img'); var imgF = document.createElement('img'); imgT.width = 16; imgT.height = 16; imgF.width = 16; imgF.height = 16; imgT.src = srcT; imgF.src = srcF; document.getElementById(id).appendChild(imgT); document.getElementById(id).appendChild(imgF); imgF.style.display = 'none'; setInterval(function() { var Xhr = new XHR(); Xhr.open('get','/test.php',true); Xhr.send(''); Xhr.onreadystatechange = function () { if(Xhr.readyState != 4) return false; if(Xhr.status == 200) { imgT.style.display = 'block'; imgF.style.display = 'none'; } else { imgT.style.display = 'none'; imgF.style.display = 'block'; } } },frequency); } </script> </head> <body> <div id="img"></div> <script> tester('img','greencircle.png','redcircle.png',1000); </script> </body> </html>
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
2 nov. 2012 à 04:14
2 nov. 2012 à 04:14
essai ça avec un fichier test.php a la racine du serveur http qui contient juste 1
et il faut changer avec l'url des image a la place de greencircle et redcircle
la frequence a la place de 1000
et il faut changer avec l'url des image a la place de greencircle et redcircle
la frequence a la place de 1000
Okay oubli pour le php si c'est sur mon site web c'est okay.
J'ai testé un truc, quand je change le fichier test.php dans le code pour disons un autre qui n'existe pas, j'ai des résultats différents si les images de :
('img','greencircle.png','redcircle.png',1000);
son situé dans les fichiers du webserver ça fonctionne pas, limage ne change pas
mais
si je prend les mêmes images mais sur mon site web ça marche........
Il faut que les images se trouvent sur mon webser de la carte sinon ca donne rine ...
Je ne comprend pas et ca ne marche pas :P
J'ai testé un truc, quand je change le fichier test.php dans le code pour disons un autre qui n'existe pas, j'ai des résultats différents si les images de :
('img','greencircle.png','redcircle.png',1000);
son situé dans les fichiers du webserver ça fonctionne pas, limage ne change pas
mais
si je prend les mêmes images mais sur mon site web ça marche........
Il faut que les images se trouvent sur mon webser de la carte sinon ca donne rine ...
Je ne comprend pas et ca ne marche pas :P
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
2 nov. 2012 à 04:54
2 nov. 2012 à 04:54
peux importe que ca gère le php ou non j'ai mis une extension sur le fichier mais on peut mettre n'importe quoi tant qu'il n'est pas vide
pour les images
tu remplaces 'greencircle.png','redcircle.png' par les urls de tes images
1000 correspond a un test toutes les 1secondes
si tes images ou le fichier de test n'existe pas c'est sur que ça ne fonctionnera pas
pour les images
tu remplaces 'greencircle.png','redcircle.png' par les urls de tes images
1000 correspond a un test toutes les 1secondes
si tes images ou le fichier de test n'existe pas c'est sur que ça ne fonctionnera pas
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
2 nov. 2012 à 05:07
2 nov. 2012 à 05:07
voilà un fichier zip encodé en base 64
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
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
2 nov. 2012 à 05:11
2 nov. 2012 à 05:11
c'est une archive zip qui contient le code et les images
pour le récuperer tu peux copier le code dans une fichier txt
et utiliser ca
ce petit code php te recréera l'archive zip
pour le récuperer tu peux copier le code dans une fichier txt
et utiliser ca
$a = file_get_contents('fichier.txt'); $a = base64_decode($a); file_put_contents('test.zip',$a);
ce petit code php te recréera l'archive zip
salut ; les infos pour le zip (base64.zip) reconstitué sont :
2,76 Ko (2 833 octets)
2,76 Ko (2 833 octets)
CRC32: 4E52F962
MD5: 181FBBCCD87E54768E57BD8E341E8A71
SHA-1: 14D0CB1C885B36D1F0D99BE5D07FE2AE3AB1A211
SHA-256: A3CAC1E6CDE579EDF43A0B76129FB8BB98BA0637D4533A37DE4E876DC3643E69
Perso, j'ai utilisé ce site pour récupérer le fichier :
Base64 Online - base64 decode and encode :
http://www.motobit.com/util/base64-decoder-encoder.asp
2,76 Ko (2 833 octets)
2,76 Ko (2 833 octets)
CRC32: 4E52F962
MD5: 181FBBCCD87E54768E57BD8E341E8A71
SHA-1: 14D0CB1C885B36D1F0D99BE5D07FE2AE3AB1A211
SHA-256: A3CAC1E6CDE579EDF43A0B76129FB8BB98BA0637D4533A37DE4E876DC3643E69
Perso, j'ai utilisé ce site pour récupérer le fichier :
Base64 Online - base64 decode and encode :
http://www.motobit.com/util/base64-decoder-encoder.asp
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
3 nov. 2012 à 07:06
3 nov. 2012 à 07:06
drôle de question sur un forum. que veux tu savoir ?
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
5 nov. 2012 à 03:07
5 nov. 2012 à 03:07
si ça ne fonctionne pas c'est que ton serveur apache n'est pas configuré comme il faut ou que le fichier test.php n'est pas a la racine du site