redimensionner une image avec la librairie GD

redimensionner une image avec la librairie GD - PHP - Programmation

Marsh Posté le 08-10-2004 à 03:03:38    

bonjour !
j'aimerais savoir comment marche la librairie GD car j'ai besoin de redimensionner des images .
 
actuellement mon code est,... on ne peut pas plus basique

Code :
  1. if ($action =="ajouter" )
  2. {
  3. $requeteMYSQL= "INSERT INTO table VALUES('$id','". $_FILES['photo']['name']."')";
  4. }
  5. $rep="../images/";


mais bon ... je voudrais redimensionner l'image uploadée donc utiliser la librairie GD mais comment m'y prendre :??:  
 
 
 
j'ai trouver un ptit bout de code sur ce forum mais je ne sais pas trop comment l'adapter a mes envies : je veux que toutes mes images mesurent 100/40 et ne pese pas plus de 60ko ... voila mes seuls contraintes
voici ce code (qui s'adapte a GD1 et GD2):

Code :
  1. function resize_img($img,$max_width)
  2.     {
  3.         // récupération des infos  
  4.         list($width, $height, $type, $attr)=getimagesize($img);
  5.         // on calcule le ratio de la grande image  
  6.         $ratio=$width/$height;
  7.         $info = array(); 
  8.         // on calcule les nouvelles dimensions de l'image réduite  
  9.         $info[0]=$max_width/$ratio;  // nouvelle longueur  
  10.         $info[1]=$max_width; // nouvelle largeur  
  11.         return $info;
  12.     }


 
pour info je travaille avec gd 2
 
merci de votre aide


Message édité par attentio le 24-03-2005 à 21:07:47

---------------
L'ordinateur a de la mémoire mais aucun souvenir ...
Reply

Marsh Posté le 08-10-2004 à 03:03:38   

Reply

Marsh Posté le 08-10-2004 à 16:31:22    

Un exellent tutoriel qui devrait t'initieru sur la librairie GD est dispo sur phpdebutant.org :
http://www.phpdebutant.org/article111.php

Reply

Marsh Posté le 08-10-2004 à 17:08:25    

merci ... ce tuto est vraiment tres bien fait ...
mais il ne me dit pas au niveau de l'upload comment ca marche ! ...

Reply

Marsh Posté le 08-10-2004 à 17:26:54    

j'ai jamais joué avec ça mais dans le principe, je dirais:
- tu upload l'image
- tu créé la miniature
- tu delete l'image de départ


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 08-10-2004 à 17:57:24    

tu crois pas que de faire tout ca, va demander beaucoup de ressources au serveur?
doit bien ya voir plus simple!!!non?

Reply

Marsh Posté le 08-10-2004 à 18:23:14    

attentio a écrit :

tu crois pas que de faire tout ca, va demander beaucoup de ressources au serveur?
doit bien ya voir plus simple!!!non?


 
Non, tu dois évidemment faire tes calculs/redimensionnements uniquement au moment de l'upload. Pas question de le faire en temps réel au moment de la consultation des pages. [:itm]

Reply

Marsh Posté le 08-10-2004 à 18:50:16    

Hermes le Messager a écrit :

Non, tu dois évidemment faire tes calculs/redimensionnements uniquement au moment de l'upload. Pas question de le faire en temps réel au moment de la consultation des pages. [:itm]


je comprends pas ta reponse,  :ouch: tu me dis que NON ya pas plus simple, et en meme temps tu me dis que tout se passe au moment de l'upload. explique-moi ... ze comprends pas
 
merci

Reply

Marsh Posté le 08-10-2004 à 18:52:28    

tu upload/resize et vire l'ancienne, les autre iront simplement consulter la photo resizer :)

Reply

Marsh Posté le 08-10-2004 à 18:54:08    

attentio a écrit :

je comprends pas ta reponse,  :ouch: tu me dis que NON ya pas plus simple, et en meme temps tu me dis que tout se passe au moment de l'upload. explique-moi ... ze comprends pas
 
merci


 
Non, tout ce que je dis :
 
1) page de formulaire qui renvoie vers une page de traitement.
2) Cette page de traitement construit tes miniatures UNE FOIS POUR TOUTES ;)
 
Au lieu de :
 
1) page de formulaire qui renvoie vers une page de traitement.
2) Cette page de traitement ne fait qu'uploader les images réelles.
3) Au moment de la consultation dans ta page index.php par exemple, tu redimensionnes à la volée. [:itm]
 
Cette méthode en effet serait tres/trop gourmande.  
 
En clair : GD c'est parfait pour des miniatures ou un redimensionnement un fois pour toutes, c'est mauvais pour adapter une image à un graphisme suivant qu'il est en 800/600 ou 1024/768 par exemple... [:itm]

Reply

Marsh Posté le 08-10-2004 à 19:11:14    

bon G un peu de mal ... moi je m'en fou de creer des miniatures, ce que je veux C uniquement que mon image uploader fasse par exemple 200/140 sans qu'on est a la redimensionner avant l'upload ...help(peu tu me re-renumerer la principe dans ma page de traitement)

Code :
  1. if ($action =="ajouter" )
  2.     {
  3.     $requeteMYSQL= "INSERT INTO table VALUES('$id','". $_FILES['photo']['name']."')";
  4. }
  5. $rep="../images/";


Reply

Marsh Posté le 08-10-2004 à 19:11:14   

Reply

Marsh Posté le 08-10-2004 à 19:38:39    

attentio a écrit :

bon G un peu de mal ... moi je m'en fou de creer des miniatures, ce que je veux C uniquement que mon image uploader fasse par exemple 200/140 sans qu'on est a la redimensionner avant l'upload ...help(peu tu me re-renumerer la principe dans ma page de traitement)

Code :
  1. if ($action =="ajouter" )
  2.     {
  3.     $requeteMYSQL= "INSERT INTO table VALUES('$id','". $_FILES['photo']['name']."')";
  4. }
  5. $rep="../images/";




 
Le principe :
 
1) Tu récupères les dimensions de la photo.
2) Avec une rêgle de trois, tu calcules la nouvelle taille en fonction de la longueur max ou de la hauteur max.  
3) Tu copy-resize la photo et tu la mets sur le serveur.
 
Pour bien voir toutes les instructions de la librairie GD + des exemples qui s'y rapporte, rdv sur la doc de php. Prend le format téléchargeable en .chm très bien fait, et cherche juste "images".
 
Si après tu ne comprends pas quelque chose, revient ici poser tes questions. ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed