Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
srv
/
data
/
web
/
vhosts
/
www.volley92.asso.fr
/
htdocs
/
functions
/
/srv/data/web/vhosts/www.volley92.asso.fr/htdocs/functions/resize_img.php
<?php /** fonction resize_img() permet de redimensionner l'image ou de la rogner * @param $url chemin de l'image à modifier * @param $w nouvelle largeur de l'image * @param $h nouvelle longueur de l'image * @param $crop TRUE si on veut rogner l'image, FALSE si l'on veut seulement la redimentionner * @param $qualite permet de modifier la qualite de l'image. Entier entre 0 et 100 (0 image altérée, 100 image initiale) */ function resize_img($url, $w, $h, $crop=FALSE, $qualite=75) { if(file_exists($url)) { $info = pathinfo($url); $extension = $info['extension']; $file =$info['filename']; $now=new DateTime(); $date = $now->format('Y-m-d_H-i')."resize"; $exist = FALSE; $nom_image = md5($file).$w.$h.$crop.$qualite.".".$extension; if($dossier = opendir("img/cache")) { while(false !== ($fichier = readdir($dossier)) && !$exist) { if($fichier != '.' && $fichier != '..') { $exist = file_exists("img/cache/".$fichier."/".$nom_image); if ($exist) {$date = $fichier;} } } } if(!$exist) { switch ($extension) { //création de l'image source case 'jpg': case 'jpeg': case 'JPG' : case 'JPEG' : $src = imagecreatefromjpeg($url); break; case 'png': case 'PNG' : $src = imagecreatefrompng($url); break; default: return ""; } list($width, $height) = getimagesize($url); $r = $width / $height; //rogner if ($crop) { $h_point = (($height - $h) / 2); $w_point = (($width - $w) / 2); $dst = imagecrop($src, ['x' => $w_point, 'y' => $h_point, 'width' => $w, 'height' => $h]); } //redimensionner else { if ($w/$h > $r) { $newwidth = $h*$r; $newheight = $h; } else { $newheight = $w/$r; $newwidth = $w; } switch ($extension) { case 'jpg': case 'jpeg': case 'JPG' : case 'JPEG' : $dst = imagecreatetruecolor($newwidth, $newheight); //création de la nouvelle image break; case 'png': case 'PNG' : $dst = imagecreatetruecolor($newwidth, $newheight); break; } imagealphablending($dst, false); imagecopyresampled($dst, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); } //enregistrement de la nouvelle image if(!file_exists("img/cache")) { if(mkdir("img/cache")) { switch ($extension) { case 'jpg': case 'jpeg': case 'JPG' : case 'JPEG' : if(!file_exists("img/cache/$date")) { mkdir("img/cache/".$date); } imagejpeg($dst, "img/cache/".$date."/".$nom_image, $qualite); break; case 'png': case 'PNG' : if(!file_exists("img/cache/$date")) { mkdir("img/cache/".$date); } $qualite = 9 - $qualite*9/100; imagesavealpha($dst, true); //pour garder la transparence des photo .png imagepng($dst, "img/cache/".$date.'/'.$nom_image, $qualite); break; } } } else { switch ($extension) { case 'jpg': case 'jpeg': case 'JPG' : case 'JPEG' : if(!file_exists("img/cache/$date")) { mkdir("img/cache/$date"); } imagejpeg($dst, "img/cache/".$date."/".$nom_image, $qualite); break; case 'png': case 'PNG' : if(!file_exists("img/cache/$date")) { mkdir("img/cache/".$date); } $qualite = 9 - $qualite*9/100; imagesavealpha($dst, true); //pour garder la transparence des photo .png imagepng($dst, "img/cache/".$date.'/'.$nom_image, $qualite); break; } } } //Verification si le poid est bien plus petit que l'image original pour une image de même taille $oldimg = getimagesize($url); $newimg = getimagesize("img/cache/".$date."/".$nom_image); if(($oldimg[0] == $newimg[0]) && ($oldimg[1] == $newimg[1])) { $oldimg_size = filesize($url); $newimg_size = filesize("img/cache/".$date."/".$nom_image); if($newimg_size < $oldimg_size) { return "img/cache/".$date."/".$nom_image; } else { unlink("img/cache/".$date."/".$nom_image); return $url; } } else {return "img/cache/".$date."/".$nom_image;} } else { return ""; } }