[spip-dev] limiter la taille des images chargée sur le site

J'aimerai limiter la taille physique des images chargées sur le site.
Je ne veux pas laisser le choix a l'utilisateur, si son image est suppérieur
à une taille définie dans la zone administrateur. Son image sera
automatiquement redimentionnée a la taille maximun et sauvegardée dans
l'arborescence avec la nouvelle taille.
Comme je ne dispose pas d'une zone pour la taille maxi, je dédinit de base
qu'une image ne doit pas etre trois fois superieure à la taille des
vignettes (3x150).
J'ai donc regardé les contribues de spip_contrib,
- Solution 1, elle joue sur img size, ce qui a pour consequence de charger
une grosse image en terme de volume et d'afficher une petite image.
- Solution 2, c'est d'intégrer en php dans les squellettes le code, mais
l'information qui donne la taille des images dans la partie admin n'est plus
bonne puisque j'ai modifié la taille du fichier physique.

J'ai trouve un petit bout de programme sur
http://www.asp-php.net/scripts/asp-php/vignette.php?page=2 qui ferait
exactement ce que je souhaite.

Mais je ne sais pas dans quel inc_xxx il faudrait l'inclure pour qu'il soit
pris en compte lors du telechargement des documents. Je l'utilise uniquement
pour document parce que j'utilise l'ALBUM d'EVA qui est basé sur les
documeents.
J'ai commencé a chercher mais il y en a beaucoup des inc_xxx qui s'appellent
entre eux.

      <?
      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;

         // La vignette existe ?
         $test = (file_exists($img_dest));
         // L'original a été modifié ?
         if($test)
            $test = (filemtime($img_dest)>filemtime($img_src));
         // Les dimensions de la vignette sont correctes ?
         if($test) {
            $size2 = GetImageSize($img_dest);
            $test = ($size2[0]==$dst_w);
            $test = ($size2[1]==$dst_h);
         }

         // Créer la vignette ?
         if(!$test) {
            // 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 <?redimage("monimage.jpg","temp/monimage.jpg",XX,YY)?>>