J'ai trouvé une fonction qui permet de lister le contenu d'un répertoire (function DirTri) - qui marche très bien - et une fonction qui permet normalement de créer des vignettes (createThumb ) - je ne l'ai pas encore testée.
Et euh, question bête, comment fait-on pour appliquer la fonction createThumb à une image listée dans mon répertoire (par exemple en cliquant sur le lien créé par la fonction DirTri).
Merci.
Code : Tout sélectionner
// Description : Miniatures en respectant couleurs et homotétie. Sélection de l'image dans un répertoire
// ($repSource) et enregistrement dans le répertoire $repDest.
// Fonctionne avec jpeget png. A adpater pour d'autres formats.
function createThumb($repSource,$repDest,$filename,$thumbSize="100"){
$originalFileName = $repSource."/test".$filename;
$destinationFileName = $repDest."/small".$filename;
$getExtension = explode(".",$originalFileName);
$lastIndex = sizeof($getExtension) - 1;
$extension = $getExtension[$lastIndex];
if (preg_match("/^JPE?G$/i", $extension)){
$sourceImage = imagecreatefromjpeg($originalFileName);
$jpeg = TRUE;
}
$imgWidth = imageSX($sourceImage);
$imgHeight = imageSY($sourceImage);
if($imgWidth>$imgHeight) {
$finalWidth = $thumbSize;
$finalHeight = round(($thumbSize/$imgWidth)*$imgHeight);
} else {
$finalWidth = round(($thumbSize/$imgHeight)*$imgWidth);
$finalHeight = $thumbSize;
}
$newImage = imagecreatetruecolor($finalWidth,$finalHeight);
ImageCopyResampled($newImage,$sourceImage,0,0,0,0,$finalWidth,$finalHeight,$imgWidth,$imgHeight);
$jpeg ? imagejpeg($newImage,$destinationFileName) : false;
imagedestroy($newImage);
}
function DirTri($rep,$tri)
{
$Array = array();
$dir = opendir($rep);
$i=0;
while ($File = readdir($dir)){
if($File != "." && $File != ".." && $File != "index.htm")
{
$Array[] = "$File";
}
$i++;
}
closedir($dir);
if($tri == 'DESC'){
rsort($Array);
}else{
sort($Array);
}
$Max = count($Array);
for($i = 0; $i != $Max; $i++){
echo "<a href=\"$rep"."$Array[$i]\">$Array[$i]</a><br>";
}
echo "<br><br>".$Max." fichier(s)" ;
}
// utilisation de la fonction
// param.1 : chemin du répertoire ("." si il s'agit du rép. courant)
// param.2 : ASC ou DESC (A-Z ou Z-A)
DirTri("./test/","ASC");