Redimensionner une Image avec PHP

Avec cette fonction, redimensionner les images devient plus simple que possible, il vous suffit d'entrer le chemin de l'image et la dimension souhaiter !

 <?php
function _CreatIMG($img, $w1 = 110, $q = 96){

$setTypeImg=array(
    "jpeg"=>array("image/jpeg","ImageCreateFromJpeg","imagejpeg"),
    "png"=>array("image/png","ImageCreateFromPng","imagepng"),
    "jpg"=>array("image/jpeg","ImageCreateFromJpeg","imagejpeg"),
    "gif"=>array("image/gif","ImageCreateFromGif","imagegif"),
    "bmp"=>array("image/bmp","ImageCreateFromBmp","imagebmp")
);

$extension =strrchr($img, ".");
$extension = substr($extension, 1);
$extension = strtolower($extension);
$extension = array_key_exists($extension, $setTypeImg) ? $extension : 'jpg';
list($w, $h) = @getimagesize($img);

$w1 = $w1>=$w ? $w : $w1;
$h1 = ($w1/$w)* $h;
$h1 = round($h1);
$newImg = imagecreatetruecolor($w1, $h1);

if($extension == "png"):
 imagesavealpha($newImg, true);
 $trans_color = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
 imagefill($newImg, 0, 0, $trans_color);
$q = 8;
endif;

$image = $setTypeImg[$extension][1]($img);
imagecopyresampled($newImg, $image, 0, 0, 0, 0, $w1, $h1, $w, $h);

header('Content-type: '.$setTypeImg[$extension][0]);
$setTypeImg[$extension][2]($newImg, null, $q);
imagedestroy($newImg);
}

/* fin de la function */

if(isset($_REQUEST["f"])):
$img = (string) $_REQUEST["f"];
$w = isset($_REQUEST['w']) && is_numeric($_REQUEST['w'])  ? (int) $_REQUEST['w'] : 110;

_CreatIMG($img, $w);
exit();
endif;
?>

Petite astuce pour rendre le chemin de vos images plus claire et mieux optimiser pour le SEO.
ajouter la dernière ligne dans votre .htaccess :

 RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#### voici le code à mettre ###
# la première variable c'est la taille de l'image en Output
# La deuxième variable c'est le chemin complet
RewriteRule ^images/600/(.*)$ image.php?f=$2&w=$1 [L]