Page 1 sur 1

Images au hazard

Posté : 26 avr. 2005, 13:34
par martius
Salut,

comment fait-on pour avoir un script qui puisse faire :

- que à chaque fois qu'on réactualise, l'image change !
- et que ce script soit facile, que je n'ai qu'à mettre le nom d'un dossier, et le script piochera une image dans celui-ci !
- que l'image affichée soit une img réduite et que l'on puisse cliquer dessus pour afficher la grande !

Merci !

Ps : j'ai trouvé ca, mais ya pas d'image réduite...
http://www.phpscripts-fr.net/portions/portion.php?id=88

Posté : 26 avr. 2005, 13:41
par flitox
Regarde du côté de getimagesize() et arrange toi pour faire des calculs de proportion d'image. En gros que suivant la hauteur, la largeur s'adpate de façon à réduire et non à déformer l'image.

Posté : 26 avr. 2005, 15:26
par Invité
Re,

oui, mais quel code dois-je mettre exactement et où ???

Merci beaucoup flitox :D :D :D :)

Posté : 26 avr. 2005, 16:08
par flitox
Là où tu as de la chance c'est que j'avais besoin de développer un script pour afficher l'image aléatoire d'un dossier et je viens de le finir :
<?php
	$chem_img = "./images";
	$handle  = opendir($chem_img);
						
	while ($file = readdir($handle))
		{
			if($file != '..' && $file !='.')
				{ 
					if (!is_dir($chem_img."/".$file))
						{
							$listef[] = $file;
						}
				}
		}
	$random_img = rand(0, count($listef));
    $size = getimagesize($chem_img."/".$listef[$random_img]);
	$largeur_maxi = 180;
	if ($size[0] > $largeur_maxi)
		{
			$width = $largeur_maxi;
			$theight = ($size[0]/$largeur_maxi);
			$height = ($size[1]/$theight);
		}
	else
		{
			$width = $size[0]; $height = $size[1];
		}
	
	echo "<a href=\"".$chem_img."/".$listef[$random_img]."\" onclick=\"window.open(this.href,'_blank');return false;\"><img style=\"border: none; width: ".$width."px; height: ".$height."px\" src=\"".$chem_img."/".$listef[$random_img]."\" alt=\"".$listef[$random_img]."\" /></a>";
	closedir($handle);
?>
Si ça ne marche pas tu ne t'en prends qu'à toi car il marche très bien ;)

Posté : 26 avr. 2005, 17:04
par Invité
Salut,

il est TRES bien, mais je recois des fois, des messages type :
Warning: getimagesize(): Read error! in /home/martius/public_html/vignette.php on line 25
Je fais quoi ???

@+ :wink:

Ps : la page : http://www.trains-idf.net/vignette.php actualises plusieurs fois, et tu verras !

Posté : 26 avr. 2005, 17:11
par flitox
Tu n'as QUE des images dans ce dossier?

Posté : 26 avr. 2005, 17:11
par Invité
Re,

oui , 2 jpg et 2 gif !

@+

Posté : 26 avr. 2005, 17:14
par flitox
Pas de fichier caché?

Mon script est en ligne là et j'ai absolument aucune erreur

Posté : 26 avr. 2005, 17:18
par Invité
Re,

pas de fichier caché !! Montres ta pagge, stp !! Sinon, peut-être que j'ai mal mis le code !!!

@+ :wink:

Posté : 26 avr. 2005, 18:31
par Invité
Re,

combien ya-t-il d'images dans ton dossier ?

@+ :wink:

Posté : 26 avr. 2005, 18:58
par flitox
117 images et si getimagesize() ne marche pas c'est qu'il n'arrive pas à lire une image (il essaye de trouver la largeur et la hauteur d'un fichier qui n'est pas une image d'où l'erreur).

Posté : 26 avr. 2005, 19:10
par flitox
D'ailleurs, j'ai un peu modifié et optimisé le code parce que tu as vu que le mode vignette avait un problème avec les proportions largeur et hauteur.

C'est réglé, j'avais mis la mauvaise variable pour la hauteur dans le echo...

Pour le getimagesize(), si tu n'es pas convaincu, va sur mon site web, sous mon message, et regarde le menu de droite avec l'image aléatoire ;)