| @ -73,14 +73,47 @@ | |||||
| }); | }); | ||||
| }); | }); | ||||
| /* | |||||
| * | |||||
| * Pré-charger les images | |||||
| * | |||||
| */ | |||||
| var preloadImages = function (imgs, callback) { | |||||
| var img; | |||||
| var remaining = 6; | |||||
| for (var i = 0; i < 6; i++) { | |||||
| img = new Image; | |||||
| img.onload = function () { | |||||
| --remaining; | |||||
| if (remaining <= 0) { | |||||
| callback(); | |||||
| } | |||||
| if (i == 0) | |||||
| $("#gargoyle").attr("src", this.src) | |||||
| }; | |||||
| d = new Date(); | |||||
| img.src = "images/logo.php?rank="+i+"&ts="+d.getTime(); | |||||
| imgs.push(img); | |||||
| } | |||||
| }; | |||||
| /* | /* | ||||
| * Faire varier l'image de la gargouille | * Faire varier l'image de la gargouille | ||||
| * | * | ||||
| */ | */ | ||||
| var gargoyles = []; | |||||
| function changeGargoyle() | function changeGargoyle() | ||||
| { | { | ||||
| d = new Date(); | |||||
| $("#gargoyle").attr("src", "images/logo.php?ts="+d.getTime()); | |||||
| if (gargoyles.length == 0) | |||||
| { | |||||
| preloadImages(gargoyles, function(){ | |||||
| topistoConsole.log("All Gargoyles are loaded"); | |||||
| }); | |||||
| } else { | |||||
| r = Math.floor(Math.random() * gargoyles.length); | |||||
| $("#gargoyle").attr("src", gargoyles[r].src); | |||||
| } | |||||
| } | } | ||||
| /* | /* | ||||
| @ -167,7 +200,7 @@ | |||||
| <img id="gargoyle" src="images/logo.php" alt="avatar dragon gargoyle" width="100%; height: auto" style="opacity:0.4"></img> | <img id="gargoyle" src="images/logo.php" alt="avatar dragon gargoyle" width="100%; height: auto" style="opacity:0.4"></img> | ||||
| </div> | </div> | ||||
| --> | --> | ||||
| <img id="gargoyle" class="simple-parallax" src="images/logo.php" alt="avatar dragon gargoyle" width="100%; height: auto" style="margin-top:-50px"></img> | |||||
| <img id="gargoyle" class="simple-parallax" src="images/logo.php" alt="avatar dragon gargoyle" width="100%; height: auto" style="margin-top:-100px"></img> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| @ -28,10 +28,9 @@ | |||||
| Chaque lettre d'un texte est remplacée par sa position dans l'alphabet. | Chaque lettre d'un texte est remplacée par sa position dans l'alphabet. | ||||
| Les images sont vues comme des matrices de points, dont la couleur est codée suivant l'intensité de sa valeur RGB (Red, Green, Blue) | Les images sont vues comme des matrices de points, dont la couleur est codée suivant l'intensité de sa valeur RGB (Red, Green, Blue) | ||||
| <br><br> | <br><br> | ||||
| La capacité de traitement des ordinateurs augmenta. | |||||
| Il fallait stocker toujours plus d'information pour alimenter les calculs qui, ainsi, devenaient de plus en plus pertinents. | |||||
| Lorsque la capacité de traitement des ordinateurs augmenta, il fallut stocker toujours plus d'information pour alimenter les calculs qui, ainsi, devenaient de plus en plus pertinents. | |||||
| Pour couronner le tout, ce stockage était mal géré, de nombreuses copies d'un même fichier existaient, parfois intentionnellement (dans le but d'un assurer la conservation), parfois par manque de rigueur. | Pour couronner le tout, ce stockage était mal géré, de nombreuses copies d'un même fichier existaient, parfois intentionnellement (dans le but d'un assurer la conservation), parfois par manque de rigueur. | ||||
| La capacité de stockage devint un problème, au point de contribuer mettre la planète en péril. | |||||
| La capacité de stockage devint un problème, au point de contribuer à mettre la planète en péril. | |||||
| Consommer toujours plus d'énergie, pour alimenter des datacenters de plus en plus nombreux. | Consommer toujours plus d'énergie, pour alimenter des datacenters de plus en plus nombreux. | ||||
| Extraire des minerais rares pour fabriquer des composants électroniques en quantité astronomiques. Cela n'était clairement pas viable sur le long terme. | Extraire des minerais rares pour fabriquer des composants électroniques en quantité astronomiques. Cela n'était clairement pas viable sur le long terme. | ||||
| <br><br> | <br><br> | ||||
| @ -1,6 +1,9 @@ | |||||
| <?php | <?php | ||||
| $alea=rand(0,100); | |||||
| // valeur par défaut | |||||
| $rank = -1; | |||||
| // Surcharge par les arguments | |||||
| extract($_REQUEST, EXTR_IF_EXISTS); | |||||
| $logo='topisto_vert_tr.png'; | $logo='topisto_vert_tr.png'; | ||||
| @ -25,23 +28,25 @@ imagesavealpha($img,true); | |||||
| // copy the thumbnail into the output image. | // copy the thumbnail into the output image. | ||||
| // imagecopyresampled($img,$block_image, 0, 0, 0, 0, $width, $height, $width, $height ); | // imagecopyresampled($img,$block_image, 0, 0, 0, 0, $width, $height, $width, $height ); | ||||
| if ($alea < 1000) | |||||
| { | |||||
| $files = glob('logo/tr/topisto_*.png'); | |||||
| usort($files, function($a, $b) { | |||||
| return filemtime($a) > filemtime($b); | |||||
| }); | |||||
| $files = glob('logo/tr/topisto_*.png'); | |||||
| usort($files, function($a, $b) { | |||||
| return filemtime($a) > filemtime($b); | |||||
| }); | |||||
| if ($rank < 0) | |||||
| { | |||||
| shuffle($files); | shuffle($files); | ||||
| $superpose = @imagecreatefrompng($files[0]); | |||||
| $rank = 0; | |||||
| } | |||||
| //imagecopymerge($img, $superpose, 0, 0, 0, 0, $width, $height, 50); | |||||
| // Borner l'index aux valeurs du tableau | |||||
| $rank = $rank % count($files); | |||||
| $superpose = @imagecreatefrompng($files[$rank]); | |||||
| imagecopyresampled($img,$superpose, 0, 0, 0, 0, $width, $height, imagesx($superpose), imagesy($superpose)); | |||||
| imagecopyresampled($img,$superpose, 0, 0, 0, 0, $width, $height, imagesx($superpose), imagesy($superpose)); | |||||
| imagedestroy($superpose); | |||||
| } | |||||
| imagedestroy($superpose); | |||||
| imagecopymerge($img, $block_image, 0, 0, 0, 0, $width, $height, 45); | imagecopymerge($img, $block_image, 0, 0, 0, 0, $width, $height, 45); | ||||