8791 sujets

Développement web côté serveur, CMS

Bonjour,

Je m'intéresse de très près à cette fameuse librairie GD de PHP et j'ai vu des scripts qui permettait d'afficher une image dynamique dans un fichier php. Ce qui a l'avantage de n'avoir qu'une seule image sur le serveur et d'envoyer la miniature souhaité au navigateur.

http://www.lephpfacile.com/cours/22-la-librairie-gd

Malheureusement mes tentatives pour réussir à les faire fonctionner sont pas très concluante.
Quelqu'un l'aurait-il déjà utilisé ?
Perso, je préfère plutôt stocker une miniature dans un dossier à part. Ca coute moins cher Smiley smile

   /* --- Fonction de retaillage image ------------------------- */
   /*      Entree : nom fichier                                  */
   /*               Largeur de la mini-image        */
   /*               nom fichier destinataire        */

   function retailpict($nomfich, $maxlarg, $nomminifich)
   {  $tpimage   = ImageCreateFromJPEG($nomfich);
      $tplarg    = imagesx($tpimage) ;
      $tphaut    = imagesy($tpimage) ;
      $tpnewlarg = $tplarg ;
      $tpnewhaut = $tphaut ;
      if ($tplarg >= $maxlarg )
      {  $tpnewlarg = $maxlarg ;
         $tpnewhaut = $tpnewlarg * $tphaut / $tplarg ;
      }
      if ($tpnewlarg == 0) $tpnewlarg = 20;
      if ($tpnewhaut == 0) $tpnewhaut = 20;
      $temppict = imagecreatetruecolor($tpnewlarg,$tpnewhaut);
      imagecopyresampled($temppict,$tpimage,0,0,0,0,$tpnewlarg,$tpnewhaut,$tplarg,$tphaut);
      ImageJPEG($temppict, $nomminifich);
      imagedestroy($tpimage);
      imagedestroy($temppict);
   }


Attention, je ne suis pas un grand spécialiste du PHP, mon code est peut-être à revoir Smiley smile
Modifié par Borak (14 Dec 2010 - 20:20)
Bonsoir,

C'est bien quand on a pas une grande banque d'image derrière. J'avais commencé par là, plusieurs répertoire selon les tailles... résultat complexité à l'enregistrement, à la suppression et à la modification. Et on se doit de respecter un standard pour les tailles. Alors qu'avec cette possible méthode il y aurait qu'une seule image que le configure dans un fichier php pour l'envoyer au navigateur.... mais voilà je n'arrive pas à la faire fonctionner.

A moins qu'une autre méthode existe pour resizer des images sans créer une image sur le serveur ? hors javascript...
Modérateur
Bonjour,

Si tu décides de générer les miniatures en temps réel via PHP, assures-toi au minimum de mettre en cache sur le serveur les images générées, pour éviter de les générer à chaque affichage.
Bonsoir,

Bon je n'ai toujours pas réussi à faire fonctionner cette méthode...
Pour faire simple, j'ai un répertoire avec les fichiers suivant :

html.html
<html>
<head>
</head>
<body>
<img src="image.php" alt="erreur"/>
</body>
</html>


image.php
header ("Content-type: image/jpeg");
$src = 'image.jpeg';
$src = ImageCreateFromJpeg($src);
imagejpeg($src);


+ une image.jpeg

Pour le moment je cherche juste à afficher une image par l'intermédiaire d'un fichier PHP... mais je sèche..