Miniature d'image en PHP

Voici une petite fonction très simple d'utilisation permettant de créer une miniature d'image avec un redimensionnement automatique si la largeur ou la hauteur dépasse un seuil définit.

Voici la fonction :

<?php
 
#
## Redimensionnement d'une image
#
function redimensionner_image($chemin_image, $largeur_max, $hauteur_max)
{
	list($src_w, $src_h) = getimagesize($chemin_image);
	$dst_w = $largeur_max;
	$dst_h = $hauteur_max;
 
	if($src_w < $dst_w)
		$dst_w = $src_w;
 
	// Teste les dimensions tenant dans la zone
	$test_h = round(($dst_w / $src_w) * $src_h);
	$test_w = round(($dst_h / $src_h) * $src_w);
 
	if(!$dst_h)// Si Height final non précisé (0)
		$dst_h = $test_h;
	elseif(!$dst_w) // Sinon si Width final non précisé (0)
		$dst_w = $test_w;
	elseif($test_h>$dst_h) // Sinon teste quel redimensionnement tient dans la zone
		$dst_w = $test_w;
	else
		$dst_h = $test_h;
 
	$array_ext = explode('.', $chemin_image);
	$extension = strtolower($array_ext[count($array_ext)-1]);
 
	if($extension == 'jpg' || $extension == 'jpeg')
	   $img_in = imagecreatefromjpeg($chemin_image);
	else if($extension == 'png')
	   $img_in = imagecreatefrompng($chemin_image);
	else if($extension == 'gif')
	   $img_in = imagecreatefromgif($chemin_image);
	else
		return false;
 
	$img_out = imagecreatetruecolor($dst_w, $dst_h);
	imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, $dst_w, $dst_h, imagesx($img_in), imagesy($img_in));
 
	imagejpeg($img_out);
}
 
?>

Exemple d'utilisation

- Dans un fichier miniature.php ajoutez ce code :

<?php
 
$img_path = $_GET['path'];
$img_max_width = $_GET['w'];
$img_max_heigh = $_GET['h'];
 
echo redimensionner_image($img_path, $img_max_width, $img_max_heigh);
 
?>

- Et ou vous souhaitez afficher votre image :

/* Code Html de l'image */
<img src="miniature.php?path=*chemindevotreimage*&w=*largeurmax*&h=*hauteurmax*" alt="Image" />

En prenant soins de remplacer le chemin, la largeur et la hauteur maximum.

Billets relatifs

2 Commentaire(s)

  1. Commenté par Goudie le Tuesday 10 March à 00:53

    J'y comprend toujours rien au PHP, mais j'imagine que c'est bien pratique ! big_smile

  2. Commenté par XdiZ le Sunday 22 March à 19:00

    Yep M@x,
    Je viens de parcourir ton blog, je pense que je vais bookmarker certains articles.

    "la hauteur dépasse un seul définit."
    C'est pas un SEUIL ?

    En tout cas bon continuation.

  3. Réponse

    Merci pour l'erreur. wink

Ajouter un commentaire





Les commentaires sont validés manuellement afin d'éviter le spam.