Attention !! 
 De Alexis Soulard - Mercredi 24 Juillet 2002 à 13:14

Attention, avec Imagecreate() la qualité de la future copie sera très médiocre !
Pour parer ce problème remplacer cette fonction par ImageCreatetruecolor().
D'autre part je n'ai pas compris l'utilité de la copie de l'image initiale vers un répertoire temporaire => code supplémentaire sans utilité !...

Voici la fonction que j'utilise personellement :
--------------------------------------------
function resize_image($nom_image, $chemin_image, $type_image){
global $chemin_photos_petit_for, $largeur_image, $hauteur_image, $redim_proportionnel, $compression;

if ($type_image == "image/gif")
$type = 1;
else
$type = 2;

if ($type == 1)
$image = imagecreatefromgif($chemin_image);
else
$image = ImageCreateFromJPEG($chemin_image);

$width = imagesx($image) ;
$height = imagesy($image) ;

if ($redim_proportionnel == 1)
$largeur_image = floor(($hauteur_image * $width) / $height) ; // hauteur proportionnelle
else if ($redim_proportionnel == 2)
$hauteur_image = floor(($largeur_image * $height) / $width) ; // hauteur proportionnelle

$thumb = ImageCreatetruecolor($largeur_image,$hauteur_image);

imagecopyresized($thumb,$image,0,0,0,0,$largeur_image,$hauteur_image,$width,$height);

if ($type == 1)
imagegif($thumb, $chemin_photos_petit_for."/".$nom_image, $compression);
else
ImageJPEG($thumb, $chemin_photos_petit_for."/".$nom_image, $compression);

imagedestroy($image);
}
--------------------------------------------

Exemple d'utilisation :
----------------------
resize_image($chemin_photo_name, $chemin_photo, $chemin_photo_type); //avec $chemin_photo résultat d'un upload

/*
dans les options définir ces paramètres :
$largeur_image = 120; //largeur image copiée
$hauteur_image = 120; //hauteur image copiée
$redim_proportionnel = 1; //si 0 pas de proportion si 1 largeur proportionnée, si 2 hauteur proportionnée
$compression = "100"; //taux de compression de l'image miniature en pourcentage => 100 = pas de compression
*/
-----------------------

  Re: Attention !! 
 De Alexis Soulard - Jeudi 25 Juillet 2002 à 20:01

Juste une petite précision à mon commentaire précédent, en fait ImageCreate() fonctionne parfaitement et sans problème avec la version 1.6.* et inférieur de la librairie graphique (GD).
Avec la version 2.0 et supérieures pour avoir une qualité convenable il est indispensable d'utilser ImageCreatetruecolor().

  Re: Attention !! 
 De Aliocha Aliocha - Mardi 17 Septembre 2002 à 16:20

oui sauf que malheureusement pour certains "ImageCreatetruecolor()" est seulement disponible à partir de la version 2.0 de la librairie GD... :-(