Redimensionner une image en PHP

Tutoriaux > PHP / MySQL > Redimensionner une image en PHP

Redimensionner une image en PHP
Une fonction pour redimensionner une image en PHP, en remplaçant directement sur le serveur l'image en question. Pratique pour redimensionner en masse images JPG, PNG ou GIF.

Introduction

Le tutoriel suivant est simplement basé sur une fonction très simple de redimension d'images en PHP. Le script gère les images de type JPG, PNG et GIF, sans pour autant gérer la transparence des deux derniers cas (il faut Imagemagic pour gérer la transparence).

Fonction

La fonction est la suivante :

//SCRIPT D'UPLOAD D'IMAGE
function redimensionner_image($fichier, $nouvelle_taille) {

//VARIABLE D'ERREUR
global $error;

//TAILLE EN PIXELS DE L'IMAGE REDIMENSIONNEE
$longueur = $nouvelle_taille;
$largeur = $nouvelle_taille;

//TAILLE DE L'IMAGE ACTUELLE
$taille = getimagesize($fichier);

//SI LE FICHIER EXISTE
if ($taille) {

//SI JPG
if ($taille['mime']=='image/jpeg' ) {
//OUVERTURE DE L'IMAGE ORIGINALE
$img_big = imagecreatefromjpeg($fichier);
$img_new = imagecreate($longueur, $largeur);

//CREATION DE LA MINIATURE
$img_petite = imagecreatetruecolor($longueur, $largeur) or $img_petite = imagecreate($longueur, $largeur);

//COPIE DE L'IMAGE REDIMENSIONNEE
imagecopyresized($img_petite,$img_big,0,0,0,0,$longueur,$largeur,$taille[0],$taille[1]);
imagejpeg($img_petite,$fichier);

}

//SI PNG
else if ($taille['mime']=='image/png' ) {
//OUVERTURE DE L'IMAGE ORIGINALE
$img_big = imagecreatefrompng($fichier); // On ouvre l'image d'origine
$img_new = imagecreate($longueur, $largeur);

//CREATION DE LA MINIATURE
$img_petite = imagecreatetruecolor($longueur, $largeur) OR $img_petite = imagecreate($longueur, $largeur);

//COPIE DE L'IMAGE REDIMENSIONNEE
imagecopyresized($img_petite,$img_big,0,0,0,0,$longueur,$largeur,$taille[0],$taille[1]);
imagepng($img_petite,$fichier);

}
// GIF
else if ($taille['mime']=='image/gif' ) {
//OUVERTURE DE L'IMAGE ORIGINALE
$img_big = imagecreatefromgif($fichier);
$img_new = imagecreate($longueur, $largeur);

//CREATION DE LA MINIATURE
$img_petite = imagecreatetruecolor($longueur, $largeur) or $img_petite = imagecreate($longueur, $largeur);

//COPIE DE L'IMAGE REDIMENSIONNEE
imagecopyresized($img_petite,$img_big,0,0,0,0,$longueur,$largeur,$taille[0],$taille[1]);
imagegif($img_petite,$fichier);

}
}
}


Utilisation de la fonction de redimensionnement

La fonction ci-dessus est très simple à utiliser. Avant utilisation,il faut par contre que l'image à redimensionner soit déjà sur le serveur !

Ensuite, pour l'utiliser, il faut simplement appeler la fonction avec en arguments : le chemin vers le fichier (absolu ou relatif), et la nouvelle taille maximale en pixels (ici on n'en met qu'une qui fera largeur et hauteur, mais vous pouvez bien entendu séparer !)

Exemple, avec "fonction_redimension.php" contenant simplement la fonction, et étant dans le même dossier que la page "redimension.php", et que l'image "original.jpg" :

<?php 
// PAGE REDIMENSION.PHP
include(fonction_redimension.php);
echo 'Redimension en cours...';

redimensionner_image('original.jpg', 400);

echo 'Redimension effectuée';
?>


Avec ce code, l'image original.jpg sera redimensionnée directement dans le dossier, à 400px de large ou de hauteur maximum et en conservant les proportions. Cela fonctionne aussi avec des chemins absolus, à vous de savoir ce qui est préférable d'utiliser dans votre cas !



Par Pouzy , Le 28 Septembre 2010 à 19h29
Ce tutoriel est la propriété d'Aidoweb et ne peut en aucun cas être copié.

Retour à PHP / MySQL

Ajouter un commentaire

Suite a un fort volume de spam, les commentaires d'invités sont pour le moment désactivés. Vous devez vous inscrire ou vous identifier pour pouvoir commenter cet article, ou demander du support.

Lectures recommandées

Commentaires sur cet article

Alpha - Le 11 Mai 2011 à 08h55

voilà, très bon articleSourire

Zehair - Le 11 Mai 2011 à 08h53

Hey très bon tuto, merci PouzyClin d'oeil

cornelius - Le 21 Décembre 2010 à 13h41

Comment récupérer le chemin de l'image ?

Webster - Le 04 Décembre 2010 à 23h12

Apres avoir passé plus de 3h en cherchant sur le web une maniere de faire ça, voila que ce script marche !

Je précise que c'est le premier qui marche !

Merci a vous !

armandoweb - Le 18 Octobre 2010 à 21h15

merci,,, un cours utile, je le testerai plus tard..

Tutoriaux > PHP / MySQL > Redimensionner une image en PHP