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);
?>
© JPSoft - 2004