Bonjour,
Dans une page web, genre galerie photos, j'affiche une image de grande taille et plusieurs de petite taille. Quand on passe le curseur sur une petite image, elle remplace la grande. Rien de sorcier, 3 lignes de javascript et c'est ok.

Oui, mais a condition que l'on télécharge directement toutes les images en grande taille en laissant à la machine du client le soin de faire les réductions nécessaires, d'où temps de téléchargement et charge de la machine du client qui n'est pas forcément musclée.

Autre solution : avoir sur le serveur un répertoire pour les photos de grande taille et un autre pour les petites. Mais pour cela, il me faut reprendre un bon millier de photos pour les redimensionner.

Enfin, une solution plus "reposante" consiste à faire faire le travail par le serveur en lui faisant redimensionner les photos quand on en a besoin : c'est une grosse machine qui fait ça sans sourciller (je n'ennuie personne puisque je suis sur un serveur dédié), je n'ai pas à reprendre mes photos et le temps de transmission est bon. Voila la fonction que j'utilise pour ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function reduire_photo($ad,$larg,$rep,$ext){
      list($width, $height) = getimagesize($ad);
      $newwidth = $larg;
      $newheight =(int)($height*$larg/$width);
      $a=explode("/",$ad);
      $l=count($a)-1;
      $adresse_photo_r=$rep.$a[$l];
      $thumb = imagecreatetruecolor($newwidth, $newheight);
      if($ext=="gif") $source = imagecreatefromgif($ad);
      if($ext=="jpg") $source = imagecreatefromjpeg($ad);
     imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
      if($ext=="gif") imagegif($thumb,$adresse_photo_r);
      elseif($ext=="jpg") imagejpeg($thumb,$adresse_photo_r);
      imagedestroy($thumb);
      return $adresse_photo_r;
}
$ad, l'adresse de la photo à redimensionner,
$lar, le "width" de la photo redimensionnée,
$rep, le chemin du sous répertoire où je veux enregistrer les photos redimensionnées,
enfin $ext le type de photo (gif ou jpeg)

Pas de problème, ça marche, après avoir ajouté ini_set("memory_limit","64M"); pour ne pas avoir une kyrielle de warning, sauf que les photos gif dont l'arrière plan est transparent ressorte avec un fond noir.