Karim's Blog

Un peu de tout sur CSS, HTML, AngularJS, JavaScript, Php et le reste

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]