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
| function get_thumbnail($imagefile,$dim){
$width=50;$height=50;
$cfgThumbnailDir = $_SERVER["DOCUMENT_ROOT"]."/TEST/images/miniatures/";
$cfgDocumentRoot = $_SERVER["DOCUMENT_ROOT"]."/TEST/images/";
if(substr($imagefile,0,1)=="/") $imagefile=substr($imagefile,1); // supprime le caractère '/' éventuel en debut de chaine
$file = $cfgDocumentRoot.$imagefile; // chemin complet de l'image
$tab=explode("//",$file);
$file=$tab[0]."/".$tab[1];
echo $file."<br>";
if(!file_exists($file)) return(false);
$ext = substr($file,strrpos($file,"."));
// récupère la taille de l'image d'origine:
$size = getimagesize($file);
$ow = $size[0];
$oh = $size[1];
// calcul de la taille de la vignette
if($height==0 && $width==0) {$width = $ow; $height = $oh; }
if($height==0) $height=round($oh*($width/$ow));
if($width==0) $width=round($ow*($height/$oh));
$dst=$cfgThumbnailDir.$imagefile;
$ext = substr($dst,strrpos($dst,"."));
if($ext!=".jpeg" && $ext!=".jpg" && $ext!=".gif") return(false);
//$dst = str_replace($ext,"_".$width."_".$height.$ext,$dst);
$ret = substr($dst,strlen($cfgDocumentRoot)-1);
$im = imagecreatefromjpeg( "$file" );
$ox = imagesx( $im );
$oy = imagesy( $im );
$nx = $dim["width"];
$ny = $dim["height"];
$nm = imagecreatetruecolor( $nx, $ny );
imagecopyresized( $nm, $im, 0, 0, 0, 0, $nx, $ny, $ox, $oy );
imagejpeg( $nm, "$dst" );
// Vérifions si la vignette existe déjà et si elle plus récente que l'image d'origine :
//echo "$dst ?...";
if(file_exists($dst)){
$dateImage = filemtime ($file);
$dateThumb = filemtime ($dst);
//echo "<br>date de '$file'=$dateImage";
//echo "<br>date de '$dst'=$dateThumb";
if($dateThumb > $dateImage) return($ret); // on retourne le chemin de la vignette existante
}
$command = "convert $file -geometry ".$width."x".$height."! $dst";
//echo "<br>command = $command";
exec($command); // création de la vignette
return($ret); // on retourne le chemin de la vignette créée
} |
Partager