1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
| <?
Echo 'Generateur de thumbnails v.1.9.2.<br><br><br>';
// Chemin de départ
$dir_base = "../photos/";
// Ouverture du dossier
$opendir = opendir($dir_base);
// Chemin de destination
$dir_dst = "../photos/thumbs/";
// Qualite de l'image finale
$qual = "100";
while ($f = readdir($opendir)) {
// si le fichier existe
if(is_file($dir_base.$f)) {
// ------------------------------------
$ExtfichierOK = '" jpg JPG jpeg JPEG png PNG gif GIF"'; // (l espace avant jpg est important)
// extension du fichier
$xplode = explode('.',$f);
$extension = $xplode[sizeof($xplode)-1]; // dernier element
$extension = strtolower($extension); // on met en minuscule
// ------------------------------------
// si l extension correspond, on continue
if (strpos($ExtfichierOK,$extension) != '') {
// ------------------------------------
// creation de la ressource-image de l image source
switch ($extension) {
case "jpg":
case "JPG":
case "jpeg":
case "JPEG":
$img_src = imagecreatefromjpeg($dir_base.$f);
break;
case "png":
case "PNG":
$img_src = imagecreatefrompng($dir_base.$f);
break;
case "gif":
case "GIF":
$img_src = imagecreatefromgif($dir_base.$f);
break;
// On peut également ouvrir les formats wbmp, xbm et xpm
// (vérifier la configuration du serveur)
} // fin switch
// ------------------------------------
// dimensions de l image source
// Exemple avec imagesx() et imagesy()
$img_src_width = imagesx( $img_src );
$img_src_height = imagesy( $img_src );
echo 'Largeur originale : '.$img_src_width.' px<br>';
echo 'Hauteur originale : '.$img_src_height.' px<br>';
// ------------------------------------
// on veut une image de destination
// de 640 pixels de large sur 480 de haut MAXI
$img_src_width_max = 640;
$img_src_height_max = 480;
echo 'Largeur max. souhaitee : '.$img_src_width_max.' px<br>';
echo 'Hauteur max. souhaitee : '.$img_src_height_max.' px<br>';
// Nom du fichier de destination
$img_dst_name = 'thb-'.$f;
// $img_dst_name = 'thb-'.strtolower($f);
echo 'Travail de l image : <a href="'.$dir_base.$f.'" target="_blank">'.$dir_base.$f.'</a><br>';
echo 'Nom du fichier a creer : '.$img_dst_name.'<br>';
// ------------------------------------
// si l image source est plus grande : on redimensionne
if ($img_src_width>$img_dst_width || $img_src_height>$img_dst_height) {
// calcul de la taille de l image de destination
$ratiox = $img_src_width / $img_src_width_max; // ratio en largeur
$ratioy = $img_src_height / $img_src_height_max; // ratio en hauteur
$ratio = max($ratiox,$ratioy); // le plus grand
echo 'Ratio largeur : '.$ratiox.'<br>';
echo 'Ratio hauteur : '.$ratioy.'<br>';
echo 'Ratio selectionne : '.$ratio.'<br>';
// dimensions de l image dest
$img_dst_width = $img_src_width/$ratio;
$img_dst_height = $img_src_height/$ratio;
echo 'Nouvelle largeur : '.$img_dst_width.' px<br>';
echo 'Nouvelle hauteur : '.$img_dst_height.' px<br>';
// ------------------------------------
echo 'Qualite de la nouvelle image : '.$qual.'%<br>';
// Affichage de confirmation d'écriture
echo 'Nouvelle image : <a href="'.$dir_dst.$img_dst_name.'" target="_blank">'.$dir_dst.$img_dst_name.'</a>...<br>';
// Creation d une ressource-image de l image de destination
// (noire par defaut)
$img_dst_resource = imagecreatetruecolor($img_dst_width, $img_dst_height);
// ------------------------------------
// REDIMENSIONNEMENT (copie, redimensionne, re-echantillonne)
ImageCopyResampled($img_dst_resource, $img_src, 0, 0, 0, 0, $img_dst_width, $img_dst_height, $img_src_width, $img_src_height);
// ------------------------------------
// ENREGISTREMENT (en fonction de l extension) avec qualite a xxx%
switch ($extension) {
case 'jpg':
case 'JPG':
case 'jpeg':
case 'JPEG':
imagejpeg ($img_dst_resource, $dir_dst.$img_dst_name, $qual);
break;
case 'png':
case 'PNG':
imagepng ($img_dst_resource, $dir_dst.$img_dst_name, $qual);
break;
case 'gif':
case 'GIF':
imagegif ($img_dst_resource, $dir_dst.$img_dst_name, $qual);
break;
} // fin switch
} // fin si l image source est plus grande
} // fin si l extension correspond
} // fin si le fichier existe
echo 'Suppression des valeurs tampons... ';
imagedestroy ($f);
imagedestroy ($img_src);
imagedestroy ($img_dst_name);
imagedestroy ($img_dst_resource);
echo '( - '.$f.' - et - '.$img_dst_name.' - )';
?>
<img src="../check.png" /><br /><br />
<?
} // fin while
// Fermeture du dossier
closedir($opendir);
echo '<br>Vos thumbnails sont disponibles dans le dossier '.$dir_dst.'<br>Merci de m avoir utilise... ;-)<br><br>';
?> |
Partager