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
| //GENERATION DE MINIATURE (si pas existante) DANS /photos/miniatures:
function creer_miniature($photo){
//préparation des variables:
$photo_info = pathinfo($photo) ; //éclatement des infos fichier (pour l'extension)
$ext = strtolower($photo_info['extension']) ; //mise en minuscule de l'extension
$url_miniature = 'photos/miniatures/'.$photo_info['basename'] ;
$url_miniature = strtolower($url_miniature) ; //mise en minuscule de l'url de miniature
//test d'existence de la miniature:
if (!file_exists($url_miniature) ){
//récupération de la taille originale et définition de la nouvelle:
$taille = getimagesize($photo) ;
$l = $taille[0] ;//largeur
$h = $taille[1] ;//hauteur
//taille de la miniature, à l'échelle:
if ($h > $l ){
$prop = $h / $l ;
$h_min = 330 ;
$l_min = 330 / $prop ;
}
else {
$prop = $l / $h ;
$l_min = 330 ;
$h_min = 330 / $prop ;
}
//redimensionnement:
if ($ext == 'jpg' ){
$originale = imagecreatefromjpeg($photo) ; //Ouverture de l'originale
$miniature = imagecreatetruecolor( $l_min , $h_min ) ; //Création de la "feuille blanche" pour la miniature
imagecopyresampled($miniature , $originale , 0 , 0 , 0 , 0 , $l_min , $h_min , $l , $h ) ;
imagejpeg($miniature , $url_miniature ); //création du fichier
imagedestroy($miniature) ; //libération de ressource
imagedestroy($originale) ;
return $url_miniature ;
}
}
else{
return $url_miniature ;
}
} |
Partager