Redimensionner une image en PHP

Le problème que vous rencontrerez sur les sites Web est la possibilité de redimensionner une image pour l’adapter à une taille exacte, afin qu’elle soit correctement affichée sur votre sites Web. Si vous avez une très grande image et que vous allez la placer sur votre site Web dans un espace qui ne dépasse pas 100 pixels sur 100 pixels, vous aimeriez pouvoir redimensionner cette image pour l’adapter à l’espace.
 
 
Une option consiste à définir simplement les attributs width et height de la balise <img> dans votre code HTML, ce qui obligera l’image à s’afficher à cette taille.

<img src="image.png" height="100" width="100" />

Cela fonctionnera parfaitement et l’image tiendra dans l’espace 100 x 100, mais le problème est que, lorsque le navigateur charge l’image, il ne redimensionnera pas l’image mais l’affichera simplement dans sa taille limitée. Cela signifie que l’image devra toujours être téléchargée en taille réelle. Si l’image est très grande, le téléchargement d’une image de grande taille peut prendre un certain temps.

La meilleure solution consisterait à redimensionner l’image à 100 x 100, ce qui réduirait sa taille, de sorte que le navigateur n’a pas besoin de télécharger une image volumineuse pour l’afficher dans un espace restreint.

Dans ce tutoriel, nous allons créer un script PHP qui vous permettra de redimensionner une image selon les dimensions de votre choix, cela vous permettra de redimensionner tout en conservant les proportions de l’image.
 

Code source :

Cet exemple vous montre comment redimensionner tout type d’image(JPG, PNG et GIF) téléchargé à partir d’un formulaire HTML.

<form name="frmImageResize" action="" method="post" enctype="multipart/form-data">
	<input type="file" name="myImage" /> 
	<input type="submit" name="submit" value="Submit" />
</form>
<?php
    if(isset($_POST['submit'])){
      if (isset ($_FILES['myImage'])){
		$imagename = $_FILES['myImage']['name'];
		$source = $_FILES['myImage']['tmp_name'];

		$imagepath = $imagename;
		//Ceci est le nouveau fichier que vous enregistrez
		$save = "images/" . $imagepath; 

		$info = getimagesize($imagepath);
		$mime = $info['mime'];

		switch ($mime) {
				case 'image/jpeg':
						$image_create_func = 'imagecreatefromjpeg';
						$image_save_func = 'imagejpeg';
						break;

				case 'image/png':
						$image_create_func = 'imagecreatefrompng';
						$image_save_func = 'imagepng';
						break;

				case 'image/gif':
						$image_create_func = 'imagecreatefromgif';
						$image_save_func = 'imagegif';
						break;

				default: 
						throw new Exception('Unknown image type.');
		}
		  
		list($width, $height) = getimagesize($imagepath);
		$modwidth = 500;  //target width
		$diff = $width / $modwidth;
		$modheight = $height / $diff;

		$tn = imagecreatetruecolor($modwidth, $modheight) ;
		$image = $image_create_func($imagepath) ;
		imagecopyresampled($tn, $image, 0, 0, 0, 0, $modwidth, $modheight, $width, $height) ;

		$image_save_func($tn, $save) ;
		  
		echo '<img src="'.$save.'">';
      }
    }
?>
Télécharger le code source en cliquant ici.
Partagez cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *