Placez le code PHP ci-dessous, dans le dossier "www"- les photos à traiter dans un dossier "album" sous-dossier de MesPhotos,
un lien typique pour l'Affichage, sera alors :

<a href="MesPhotos/album/p210.jpg"><img src="MesPhotos/album/albump/p210.jpg" title="Rio-Copacabana"></a>

avec :

MesPhotos/album/p210.jpg = chemin de la photo de dimension normale
MesPhotos/album/albump/p210.jpg = chemin de la photo miniature
title="votre commentaire" qui sera affiché quand la souris passera dessus.

Signification des Variables et Commentaires ------------------------

$Dossier = chemin d'accés aux photos grandeur nature, dont les noms de fichiers seront convertis en minuscules s'il y a lieu.
$mindossier = sous-dossier où seront déposées les miniatures, qui porteront le même nom que leur photo d'origine.
$largeurDestination = largeur de la miniature en pixels
$hauteurDestination = hauteur de la miniature en pixels
(pour une photo verticale, les pixels de la hauteur et de la largeur seront permutés)

Attention : si Nb important de photos à convertir, on peut avoir un "Time Out" (traitement de plus de 30 secondes)
je n'ai pas trouvé la parade !!

Le code PHP :		
<?php 
$Dossier ="d:/EasyPHP1-7/www/MesPhotos/album/";
$mindossier = $Dossier."albump/";
$dir = opendir ($Dossier);
chmod($Dossier,0777);
chmod($mindossier,0777);
while ($file = readdir($dir)) {
	$Image = strtolower($file);
	echo "$Image"."<br>";
	if($Image !== $file) {
	   rename($Dossier.$file,$Dossier.$Image) 
	   or die("impossible de renommer $file en $Image:$php_errormsg");
	}   	
	if(substr($Image,-4) == '.jpg') {
	   $fichierSource = $Dossier.$file;
	   $size = getimagesize($fichierSource); 
        if($size[0] > $size[1]){  
           $largeurDestination = 160;
           $hauteurDestination = 120;
	       } 
	       else {
	      $largeurDestination = 120;
          $hauteurDestination = 160;
	  }
     $im = @ImageCreateTrueColor ($largeurDestination, $hauteurDestination) 
            or die ("Erreur lors de la création de l'image"); 
     $source = ImageCreateFromJpeg($fichierSource);
     $largeurSource = imagesx($source);
     $hauteurSource = imagesy($source);
	 ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);
     $miniature = $mindossier.$Image;
     ImageJpeg ($im, $miniature); 
     echo "Image miniature générée: $miniature"."<br>";
	}
}
closedir ($dir);	
?>

top
© JPSoft - 2004