PHP - GD redimension d'image

Fermé
dracucharles Messages postés 58 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 13 novembre 2009 - 26 mai 2008 à 10:12
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 24 déc. 2008 à 13:43
Bonjour à tous,
J'ai une série d'images stockées dans ma base de données. Parmi cette série, j'en affiche quatre sur mon site en tant que "bannière", et elles sont chargées aléatoirement pour qu'elles diffèrent à chaque chargement de pages.

J'aimerais savoir s'il est possible de re dimensionner ces images à l'affichage simplement grâce à GD. C'est à dire que je conserve l'image normale qui est dans ma base mais lorsqu'elle s'affiche, elle apparait au format 150*113.
Pour être plus clair, imaginons que nous avons une image de 1600*1200 qui est dans ma base et lorsque que je l'affiche elle apparaît au format 150*113 sans qu'elle soit modifiée.

j'ai regardé la fonction imagecopyresampled() mais je pense que ça ne correspond pas à ce qu'il me faut (ou alors j'ai pas bien compris).

Merci de votre aide.
A voir également:

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 déc. 2008 à 13:43
tiens un exemple de redim à l'affichage:

<?php
/*La fonction   fctaffichimage($W_max, $H_max, $img_Src)

La fonction affiche : width="..." height="..."

Les paramètres
- $W_max : LARGEUR maxi d'affichage --> ou 0
- $H_max : HAUTEUR maxi d'affichage --> ou 0
- $img_Src : chemin+NOM de l'image Source

- si $W_max = 0 --> LARGEUR auto
- si $H_max = 0 --> HAUTEUR auto
*/

			///// Utilisation :

// FONCTION de redimensionnement "a l'affichage"
   // -----------------------------------------------------------------------------------------------------
// fonction de redimensionnement A L'AFFICHAGE
// -----------------------------------------------------------------------------------------------------
// La FONCTION : fctaffichimage($W_max, $H_max, $img_Src)
// Les parametres :
// - $W_max : LARGEUR maxi finale ----> ou 0 : largeur libre
// - $H_max : HAUTEUR maxi finale ----> ou 0 : hauteur libre
// - $img_Src : NOM de l image Source
// -----------------------------------------------------------------------------------------------------
// Affiche :  width="..." height="..." pour la balise img
// -----------------------------------------------------------------------------------------------------


function fctaffichimage($W_max, $H_max, $img_Src) {
 // ------------------------------------------------------------------
   // Lit les dimensions de l'image
   $img_size = GetImageSize($img_Src);  
   $W_Src = $img_size[0]; // largeur
   $H_Src = $img_size[1]; // hauteur
 // ------------------------------------------------------------------
   // Teste les dimensions tenant dans la zone
   $H_test = round(($W_max / $W_Src) * $H_Src);
   $W_test = round(($H_max / $H_Src) * $W_Src);
 // ------------------------------------------------------------------
   // Si $H_max non précisé (0)
   if(!$H_max) { $H_max = $H_test; }
   // Sinon si $W_max non précisé (0)
   elseif(!$W_max) { $W_max = $W_test; }
   // Sinon teste quel redimensionnement tient dans la zone
   elseif($H_test > $H_max) { $W_max = $W_test; }
   else { $H_max = $H_test; }
 // ------------------------------------------------------------------
   // (procedure : ne retourne aucune valeur mais ...)
   // AFFICHE les dimensions optimales
   // Affiche :  width="..." height="..."

   echo ' width="'.$W_max.'" height="'.$H_max.'"';
}
?>
<html>
<img alt="" src="IMG_0677.JPG" <?php fctaffichimage(200, 300, 'IMG_0677.JPG') ?> />

</html>
1
essaye plutot imagecopyresized()
0