J'utilise un code avec une fonction ImageCreate() du script disponible sur [www.asp-php.net] :
<?php function redimage($img_src,$img_dest,$dst_w,$dst_h) { // Lit les dimensions de l'image $size = GetImageSize($img_src); $src_w = $size[0]; $src_h = $size[1]; // 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); // Si Height final non précisé (0) if(!$dst_h) $dst_h = $test_h; // Sinon si Width final non précisé (0) elseif(!$dst_w) $dst_w = $test_w; // Sinon teste quel redimensionnement tient dans la zone elseif($test_h>$dst_h) $dst_w = $test_w; else $dst_h = $test_h;
// Crée une image vierge aux bonnes dimensions $dst_im = ImageCreate($dst_w,$dst_h); // Copie dedans l'image initiale redimensionnée $src_im = ImageCreateFromJpeg($img_src); ImageCopyResized($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h); // Sauve la nouvelle image ImageJpeg($dst_im,$img_dest); // Détruis les tampons ImageDestroy($dst_im); ImageDestroy($src_im);
// Affiche le descritif de la vignette echo "SRC='".$img_dest."' WIDTH=".$dst_w." HEIGHT=".$dst_h; } ?>
<IMG <?php redimage("1.jpg","1.jpg",10,10)?>>
Cela marche super bien chez free mais pas en local avec wampserver ...
Dans le menu Wampserver, PHP Extensions, il faut activer php_gd2, la librairie graphique.
D'ailleurs, une bonne méthode est de regarder sur le site réel, par phpinfo() quelles sont les extensions actives, puis d'activer (ou désactiver) les mêmes dans Wampserver, de manière à travailler de façon identique en local et en distant.
Avec Wamp5 1.5.0, il nous a donné un gestionnaire d'extensions PHP directement accessible dans le menu Wamp5. : clic sur l'icône dans la barre de tâches, puis PHP Extensions ; les extensions validées présentent un petit triangle à gauche.